diff --git a/web/components/charts/contract/binary.tsx b/web/components/charts/contract/binary.tsx index 3526933f..a6ba9bee 100644 --- a/web/components/charts/contract/binary.tsx +++ b/web/components/charts/contract/binary.tsx @@ -49,24 +49,24 @@ export const BinaryContractChart = (props: { onMouseOver?: (p: HistoryPoint | undefined) => void }) => { const { contract, bets, onMouseOver } = props - const [startDate, endDate] = getDateRange(contract) + const [start, end] = getDateRange(contract) const startP = getInitialProbability(contract) const endP = getProbability(contract) const betPoints = useMemo(() => getBetPoints(bets), [bets]) const data = useMemo(() => { return [ - { x: new Date(startDate), y: startP }, + { x: new Date(start), y: startP }, ...betPoints, - { x: new Date(endDate ?? Date.now() + DAY_MS), y: endP }, + { x: new Date(end ?? Date.now() + DAY_MS), y: endP }, ] - }, [startDate, startP, endDate, endP, betPoints]) + }, [start, startP, end, endP, betPoints]) const rightmostDate = getRightmostVisibleDate( - endDate ? new Date(endDate) : null, - last(betPoints)?.x, - new Date(Date.now()) + end, + last(betPoints)?.x?.getTime(), + Date.now() ) - const visibleRange = [startDate, rightmostDate] + const visibleRange = [start, rightmostDate] const isMobile = useIsMobile(800) const containerRef = useRef(null) const width = useElementWidth(containerRef) ?? 0 diff --git a/web/components/charts/contract/choice.tsx b/web/components/charts/contract/choice.tsx index 52bae0f8..127e7d9c 100644 --- a/web/components/charts/contract/choice.tsx +++ b/web/components/charts/contract/choice.tsx @@ -146,9 +146,9 @@ export const ChoiceContractChart = (props: { [answers, contract, betPoints, start, end] ) const rightmostDate = getRightmostVisibleDate( - end ? new Date(end) : null, - last(betPoints)?.x, - new Date(Date.now()) + end, + last(betPoints)?.x?.getTime(), + Date.now() ) const visibleRange = [start, rightmostDate] const isMobile = useIsMobile(800) diff --git a/web/components/charts/contract/pseudo-numeric.tsx b/web/components/charts/contract/pseudo-numeric.tsx index 4287a57e..1232a96c 100644 --- a/web/components/charts/contract/pseudo-numeric.tsx +++ b/web/components/charts/contract/pseudo-numeric.tsx @@ -62,7 +62,7 @@ export const PseudoNumericContractChart = (props: { }) => { const { contract, bets, onMouseOver } = props const { min, max, isLogScale } = contract - const [startDate, endDate] = getDateRange(contract) + const [start, end] = getDateRange(contract) const scaleP = useMemo( () => getScaleP(min, max, isLogScale), [min, max, isLogScale] @@ -72,18 +72,18 @@ export const PseudoNumericContractChart = (props: { const betPoints = useMemo(() => getBetPoints(bets, scaleP), [bets, scaleP]) const data = useMemo( () => [ - { x: new Date(startDate), y: startP }, + { x: new Date(start), y: startP }, ...betPoints, - { x: new Date(endDate ?? Date.now() + DAY_MS), y: endP }, + { x: new Date(end ?? Date.now() + DAY_MS), y: endP }, ], - [betPoints, startDate, startP, endDate, endP] + [betPoints, start, startP, end, endP] ) const rightmostDate = getRightmostVisibleDate( - endDate ? new Date(endDate) : null, - last(betPoints)?.x, - new Date(Date.now()) + end, + last(betPoints)?.x?.getTime(), + Date.now() ) - const visibleRange = [startDate, rightmostDate] + const visibleRange = [start, rightmostDate] const isMobile = useIsMobile(800) const containerRef = useRef(null) const width = useElementWidth(containerRef) ?? 0 diff --git a/web/components/charts/helpers.tsx b/web/components/charts/helpers.tsx index fdbec204..ea436213 100644 --- a/web/components/charts/helpers.tsx +++ b/web/components/charts/helpers.tsx @@ -263,15 +263,15 @@ export const getDateRange = (contract: Contract) => { } export const getRightmostVisibleDate = ( - contractEnd: Date | null | undefined, - lastActivity: Date | null | undefined, - now: Date + contractEnd: number | null | undefined, + lastActivity: number | null | undefined, + now: number ) => { if (contractEnd != null) { return contractEnd } else if (lastActivity != null) { // client-DB clock divergence may cause last activity to be later than now - return new Date(Math.max(lastActivity.getTime(), now.getTime())) + return Math.max(lastActivity, now) } else { return now }