import { Suspense } from 'react'; import type { RouteObject } from 'react-router-dom'; import { useRoutes } from 'react-router-dom'; import dynamic from 'next/dynamic'; import { t } from '@vegaprotocol/i18n'; import { Loader, Splash } from '@vegaprotocol/ui-toolkit'; import trimEnd from 'lodash/trimEnd'; const LazyHome = dynamic(() => import('../client-pages/home'), { ssr: false, }); const LazyLiquidity = dynamic(() => import('../client-pages/liquidity'), { ssr: false, }); const LazyMarkets = dynamic(() => import('../client-pages/markets'), { ssr: false, }); const LazyMarket = dynamic(() => import('../client-pages/market'), { ssr: false, }); const LazyPortfolio = dynamic(() => import('../client-pages/portfolio'), { ssr: false, }); export enum Routes { HOME = '/', MARKET = '/markets', MARKETS = '/markets/all', PORTFOLIO = '/portfolio', LIQUIDITY = 'liquidity/:marketId', } type ConsoleLinks = { [r in Routes]: (...args: string[]) => string }; export const Links: ConsoleLinks = { [Routes.HOME]: () => Routes.HOME, [Routes.MARKET]: (marketId: string | null | undefined) => marketId ? trimEnd(`${Routes.MARKET}/${marketId}`, '/') : Routes.MARKET, [Routes.MARKETS]: () => Routes.MARKETS, [Routes.PORTFOLIO]: () => Routes.PORTFOLIO, [Routes.LIQUIDITY]: (marketId: string) => Routes.LIQUIDITY.replace(':marketId', marketId), }; const routerConfig: RouteObject[] = [ { index: true, element: , }, { path: Routes.MARKETS, element: , }, { path: Routes.MARKET, children: [ { index: true, element: , }, { path: ':marketId', element: , }, ], }, { path: Routes.LIQUIDITY, element: , }, { path: Routes.PORTFOLIO, element: , }, { path: '*', element: (

{t('Not found')}

), }, ]; export const ClientRouter = () => { const routes = useRoutes(routerConfig); return ( } > {routes} ); };