From ec57200b67ac1051fcd648a7c4a88499599840e5 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Sat, 24 Sep 2022 16:30:22 -0700 Subject: [PATCH] Memoize calculating sale amount on your bets list --- web/components/bets-list.tsx | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index 97d11758..74480de5 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -610,18 +610,24 @@ function BetRow(props: { const isNumeric = outcomeType === '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 ? ( 'ANTE' - ) : saleAmount !== undefined ? ( - <>{formatMoney(saleAmount)} (sold) + ) : saleBet ? ( + <>{formatMoney(payout)} (sold) ) : ( - formatMoney( - isResolved - ? resolvedPayout(contract, bet) - : calculateSaleAmount(contract, bet, unfilledBets) - ) + formatMoney(payout) ) const payoutIfChosenDisplay =