From 536c493a52d70d19e897e04143ab8caaece507a3 Mon Sep 17 00:00:00 2001 From: maciek Date: Tue, 3 Oct 2023 10:19:52 +0200 Subject: [PATCH] chore: can't view settled market - redirect for closed markets --- apps/trading/client-pages/market/market.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/trading/client-pages/market/market.tsx b/apps/trading/client-pages/market/market.tsx index 7b93154b8..bc649619a 100644 --- a/apps/trading/client-pages/market/market.tsx +++ b/apps/trading/client-pages/market/market.tsx @@ -9,9 +9,10 @@ import { useGlobalStore, usePageTitleStore } from '../../stores'; import { TradeGrid } from './trade-grid'; import { TradePanels } from './trade-panels'; import { useNavigate, useParams } from 'react-router-dom'; -import { Links } from '../../lib/links'; +import { Links, Routes } from '../../lib/links'; import { ViewType, useSidebar } from '../../components/sidebar'; import { useGetCurrentRouteId } from '../../lib/hooks/use-get-current-route-id'; +import { MarketState } from '@vegaprotocol/types'; const calculatePrice = (markPrice?: string, decimalPlaces?: number) => { return markPrice && decimalPlaces @@ -69,6 +70,20 @@ export const MarketPage = ({ closed }: { closed?: boolean }) => { const { data, error, loading } = useMarket(marketId); + useEffect(() => { + if ( + data?.state && + [ + MarketState.STATE_SETTLED, + MarketState.STATE_TRADING_TERMINATED, + ].includes(data.state) && + currentRouteId !== Routes.CLOSED_MARKETS && + marketId + ) { + navigate(Links.CLOSED_MARKETS(marketId)); + } + }, [data?.state, currentRouteId, navigate, marketId]); + useEffect(() => { if (data?.id && data.id !== lastMarketId && !closed) { update({ marketId: data.id });