Memoize calculating sale amount on your bets list

This commit is contained in:
Marshall Polaris 2022-09-24 16:30:22 -07:00
parent d990bc2f07
commit ec57200b67

View File

@ -610,18 +610,24 @@ function BetRow(props: {
const isNumeric = outcomeType === 'NUMERIC' const isNumeric = outcomeType === 'NUMERIC'
const isPseudoNumeric = outcomeType === 'PSEUDO_NUMERIC' const isPseudoNumeric = outcomeType === 'PSEUDO_NUMERIC'
const saleAmount = saleBet?.sale?.amount // calculateSaleAmount is very slow right now so that's why we memoized this
const payout = useMemo(() => {
const saleBetAmount = saleBet?.sale?.amount
if (saleBetAmount) {
return saleBetAmount
} else if (contract.isResolved) {
return resolvedPayout(contract, bet)
} else {
return calculateSaleAmount(contract, bet, unfilledBets)
}
}, [contract, bet, saleBet, unfilledBets])
const saleDisplay = isAnte ? ( const saleDisplay = isAnte ? (
'ANTE' 'ANTE'
) : saleAmount !== undefined ? ( ) : saleBet ? (
<>{formatMoney(saleAmount)} (sold)</> <>{formatMoney(payout)} (sold)</>
) : ( ) : (
formatMoney( formatMoney(payout)
isResolved
? resolvedPayout(contract, bet)
: calculateSaleAmount(contract, bet, unfilledBets)
)
) )
const payoutIfChosenDisplay = const payoutIfChosenDisplay =