Add crosshairs for referendum charts (#8577)
This commit is contained in:
parent
8a20706ea9
commit
7b35db6422
@ -48,6 +48,9 @@ const OPTIONS: ChartOptions = {
|
||||
radius: 0
|
||||
}
|
||||
},
|
||||
hover: {
|
||||
intersect: false
|
||||
},
|
||||
interaction: {
|
||||
intersect: false,
|
||||
mode: 'index'
|
||||
@ -163,7 +166,7 @@ function getChartResult (totalEligible: BN, isConvictionVote: boolean, info: Pal
|
||||
return null;
|
||||
}
|
||||
|
||||
function getChartProps (bestNumber: BN, blockInterval: BN, chartProps: ChartResultExt[], track: PalletReferendaTrackInfo, { x }: CurveGraph, t: TFunction): ChartProps[] {
|
||||
function getChartProps (bestNumber: BN, blockInterval: BN, chartProps: ChartResultExt[], refId: BN, track: PalletReferendaTrackInfo, { x }: CurveGraph, t: TFunction): ChartProps[] {
|
||||
const changeXMax = chartProps.reduce((max, { changeX }) =>
|
||||
max === -1 || changeX === -1
|
||||
? -1
|
||||
@ -267,10 +270,29 @@ function getChartProps (bestNumber: BN, blockInterval: BN, chartProps: ChartResu
|
||||
: {}
|
||||
)
|
||||
},
|
||||
crosshair: {
|
||||
line: {
|
||||
color: '#ff8c00',
|
||||
dashPattern: [5, 5],
|
||||
width: 2
|
||||
},
|
||||
snapping: {
|
||||
enabled: true
|
||||
},
|
||||
sync: {
|
||||
group: refId.toNumber()
|
||||
},
|
||||
// this would be nice, but atm just doesn't quite
|
||||
// seem or feel intuitive...
|
||||
zoom: {
|
||||
enabled: false
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
callbacks: {
|
||||
title
|
||||
}
|
||||
},
|
||||
intersect: false
|
||||
}
|
||||
}
|
||||
}, OPTIONS),
|
||||
@ -300,8 +322,8 @@ function Referendum (props: Props): React.ReactElement<Props> {
|
||||
|
||||
const chartProps = useMemo(
|
||||
() => bestNumber && chartResult && isExpanded && track && trackGraph &&
|
||||
getChartProps(bestNumber, blockInterval, chartResult, track, trackGraph, t),
|
||||
[bestNumber, blockInterval, chartResult, isExpanded, t, track, trackGraph]
|
||||
getChartProps(bestNumber, blockInterval, chartResult, id, track, trackGraph, t),
|
||||
[bestNumber, blockInterval, chartResult, id, isExpanded, t, track, trackGraph]
|
||||
);
|
||||
|
||||
const chartLegend = useMemo(
|
||||
|
||||
@ -26,8 +26,10 @@
|
||||
"@polkadot/ui-settings": "^2.9.14",
|
||||
"@polkadot/util": "^10.2.1",
|
||||
"@polkadot/util-crypto": "^10.2.1",
|
||||
"@types/chartjs-plugin-crosshair": "^1.1.1",
|
||||
"chart.js": "^3.9.1",
|
||||
"chartjs-plugin-annotation": "^2.1.0",
|
||||
"chartjs-plugin-crosshair": "^1.2.0",
|
||||
"codeflask": "^1.4.1",
|
||||
"i18next": "^21.10.0",
|
||||
"i18next-browser-languagedetector": "^6.1.8",
|
||||
|
||||
@ -3,12 +3,13 @@
|
||||
|
||||
import { CategoryScale, Chart, LinearScale, LineElement, PointElement, Title, Tooltip } from 'chart.js';
|
||||
import annotationPlugin from 'chartjs-plugin-annotation';
|
||||
import crosshairPlugin from 'chartjs-plugin-crosshair';
|
||||
|
||||
import Doughnut from './Doughnut';
|
||||
import HorizBar from './HorizBar';
|
||||
import Line from './Line';
|
||||
|
||||
Chart.register(CategoryScale, LinearScale, LineElement, PointElement, Title, Tooltip, annotationPlugin);
|
||||
Chart.register(CategoryScale, LinearScale, LineElement, PointElement, Title, Tooltip, annotationPlugin, crosshairPlugin);
|
||||
|
||||
export default {
|
||||
Doughnut,
|
||||
|
||||
22
yarn.lock
22
yarn.lock
@ -3519,10 +3519,12 @@ __metadata:
|
||||
"@polkadot/ui-settings": ^2.9.14
|
||||
"@polkadot/util": ^10.2.1
|
||||
"@polkadot/util-crypto": ^10.2.1
|
||||
"@types/chartjs-plugin-crosshair": ^1.1.1
|
||||
"@types/codeflask": ^1.4.3
|
||||
"@types/owasp-password-strength-test": ^1.3.0
|
||||
chart.js: ^3.9.1
|
||||
chartjs-plugin-annotation: ^2.1.0
|
||||
chartjs-plugin-crosshair: ^1.2.0
|
||||
codeflask: ^1.4.1
|
||||
i18next: ^21.10.0
|
||||
i18next-browser-languagedetector: ^6.1.8
|
||||
@ -4477,7 +4479,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/chart.js@npm:^2.9.37":
|
||||
"@types/chart.js@npm:*, @types/chart.js@npm:^2.9.37":
|
||||
version: 2.9.37
|
||||
resolution: "@types/chart.js@npm:2.9.37"
|
||||
dependencies:
|
||||
@ -4486,6 +4488,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/chartjs-plugin-crosshair@npm:^1.1.1":
|
||||
version: 1.1.1
|
||||
resolution: "@types/chartjs-plugin-crosshair@npm:1.1.1"
|
||||
dependencies:
|
||||
"@types/chart.js": "*"
|
||||
checksum: 3574680b395f01b5979c52758d57e2c5ed19a5a88e1e17497c005c4b1991933e78b5c1d7c749af0fc38c4fcd5cb501e05054b04ad531f45d54e12ed3ba48b499
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/codeflask@npm:^1.4.3":
|
||||
version: 1.4.3
|
||||
resolution: "@types/codeflask@npm:1.4.3"
|
||||
@ -7368,6 +7379,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"chartjs-plugin-crosshair@npm:^1.2.0":
|
||||
version: 1.2.0
|
||||
resolution: "chartjs-plugin-crosshair@npm:1.2.0"
|
||||
peerDependencies:
|
||||
chart.js: ^3.4.0
|
||||
checksum: f5cd3171d479d012f40915ae3d3baa35b7c726d1a67f99f0d55c6042c45e7adc807f832a73a3d0924d91035d9198f6ef388f05a95ba05a2e0dbe479a350515ba
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"chokidar@npm:^3.4.0, chokidar@npm:^3.5.3":
|
||||
version: 3.5.3
|
||||
resolution: "chokidar@npm:3.5.3"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user