Memoize on numbers, not dates

This commit is contained in:
Marshall Polaris 2022-09-29 21:26:05 -07:00
parent 5b5a919ed7
commit de7cf62918
4 changed files with 10 additions and 10 deletions

View File

@ -55,14 +55,14 @@ export const BinaryContractChart = (props: {
const betPoints = useMemo(() => getBetPoints(bets), [bets]) const betPoints = useMemo(() => getBetPoints(bets), [bets])
const data = useMemo(() => { const data = useMemo(() => {
return [ return [
{ x: startDate, y: startP }, { x: new Date(startDate), y: startP },
...betPoints, ...betPoints,
{ x: endDate ?? new Date(Date.now() + DAY_MS), y: endP }, { x: new Date(endDate ?? Date.now() + DAY_MS), y: endP },
] ]
}, [startDate, startP, endDate, endP, betPoints]) }, [startDate, startP, endDate, endP, betPoints])
const rightmostDate = getRightmostVisibleDate( const rightmostDate = getRightmostVisibleDate(
endDate, endDate ? new Date(endDate) : null,
last(betPoints)?.x, last(betPoints)?.x,
new Date(Date.now()) new Date(Date.now())
) )

View File

@ -136,17 +136,17 @@ export const ChoiceContractChart = (props: {
const betPoints = useMemo(() => getBetPoints(answers, bets), [answers, bets]) const betPoints = useMemo(() => getBetPoints(answers, bets), [answers, bets])
const data = useMemo( const data = useMemo(
() => [ () => [
{ x: start, y: answers.map((_) => 0) }, { x: new Date(start), y: answers.map((_) => 0) },
...betPoints, ...betPoints,
{ {
x: end ?? new Date(Date.now() + DAY_MS), x: new Date(end ?? Date.now() + DAY_MS),
y: answers.map((a) => getOutcomeProbability(contract, a.id)), y: answers.map((a) => getOutcomeProbability(contract, a.id)),
}, },
], ],
[answers, contract, betPoints, start, end] [answers, contract, betPoints, start, end]
) )
const rightmostDate = getRightmostVisibleDate( const rightmostDate = getRightmostVisibleDate(
end, end ? new Date(end) : null,
last(betPoints)?.x, last(betPoints)?.x,
new Date(Date.now()) new Date(Date.now())
) )

View File

@ -72,14 +72,14 @@ export const PseudoNumericContractChart = (props: {
const betPoints = useMemo(() => getBetPoints(bets, scaleP), [bets, scaleP]) const betPoints = useMemo(() => getBetPoints(bets, scaleP), [bets, scaleP])
const data = useMemo( const data = useMemo(
() => [ () => [
{ x: startDate, y: startP }, { x: new Date(startDate), y: startP },
...betPoints, ...betPoints,
{ x: endDate ?? new Date(Date.now() + DAY_MS), y: endP }, { x: new Date(endDate ?? Date.now() + DAY_MS), y: endP },
], ],
[betPoints, startDate, startP, endDate, endP] [betPoints, startDate, startP, endDate, endP]
) )
const rightmostDate = getRightmostVisibleDate( const rightmostDate = getRightmostVisibleDate(
endDate, endDate ? new Date(endDate) : null,
last(betPoints)?.x, last(betPoints)?.x,
new Date(Date.now()) new Date(Date.now())
) )

View File

@ -259,7 +259,7 @@ export const getDateRange = (contract: Contract) => {
const { createdTime, closeTime, resolutionTime } = contract const { createdTime, closeTime, resolutionTime } = contract
const isClosed = !!closeTime && Date.now() > closeTime const isClosed = !!closeTime && Date.now() > closeTime
const endDate = resolutionTime ?? (isClosed ? closeTime : null) const endDate = resolutionTime ?? (isClosed ? closeTime : null)
return [new Date(createdTime), endDate ? new Date(endDate) : null] as const return [createdTime, endDate ?? null] as const
} }
export const getRightmostVisibleDate = ( export const getRightmostVisibleDate = (