diff --git a/web/src/hooks/useClassicAppealContext.tsx b/web/src/hooks/useClassicAppealContext.tsx index 687fc184c..a0f123a71 100644 --- a/web/src/hooks/useClassicAppealContext.tsx +++ b/web/src/hooks/useClassicAppealContext.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState, createContext, useContext } from "react"; +import React, { useMemo, createContext, useContext, useState } from "react"; import { useParams } from "react-router-dom"; @@ -7,6 +7,7 @@ import { Periods } from "consts/periods"; import { usePopulatedDisputeData } from "hooks/queries/usePopulatedDisputeData"; import { useCountdown } from "hooks/useCountdown"; import { getLocalRounds } from "utils/getLocalRounds"; +import { isUndefined } from "utils/index"; import { useAppealCost } from "queries/useAppealCost"; import { useClassicAppealQuery, ClassicAppealQuery } from "queries/useClassicAppealQuery"; @@ -15,6 +16,7 @@ import { useDisputeKitClassicMultipliers } from "queries/useDisputeKitClassicMul interface ICountdownContext { loserSideCountdown?: number; winnerSideCountdown?: number; + isLoading?: boolean; } const CountdownContext = createContext({}); @@ -73,6 +75,8 @@ export const ClassicAppealProvider: React.FC<{ dispute?.court.timesPerPeriod[Periods.appeal] ); + const isLoading = useMemo(() => isUndefined(dispute) || isUndefined(multipliers), [dispute, multipliers]); + const { loserRequiredFunding, winnerRequiredFunding } = useMemo( () => ({ loserRequiredFunding: getRequiredFunding(appealCost, multipliers?.loser_stake_multiplier), @@ -85,7 +89,10 @@ export const ClassicAppealProvider: React.FC<{ return ( ({ loserSideCountdown, winnerSideCountdown }), [loserSideCountdown, winnerSideCountdown])} + value={useMemo( + () => ({ loserSideCountdown, winnerSideCountdown, isLoading }), + [loserSideCountdown, winnerSideCountdown, isLoading] + )} > ({ selectedOption, setSelectedOption }), [selectedOption, setSelectedOption])} diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/index.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/index.tsx index ceb47eb2a..f5416ed1a 100644 --- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/index.tsx +++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Options/index.tsx @@ -2,7 +2,6 @@ import React from "react"; import styled from "styled-components"; import { useCountdownContext } from "hooks/useClassicAppealContext"; -import { isUndefined } from "utils/index"; import { StyledSkeleton } from "components/StyledSkeleton"; @@ -18,13 +17,20 @@ interface IOptions { } const Options: React.FC = ({ setAmount }) => { - const { loserSideCountdown } = useCountdownContext(); - return !isUndefined(loserSideCountdown) ? ( + const { loserSideCountdown, isLoading } = useCountdownContext(); + + return ( - {loserSideCountdown > 0 ? : } + {!isLoading ? ( + loserSideCountdown > 0 ? ( + + ) : ( + + ) + ) : ( + + )} - ) : ( - ); };