handleKeyPress(event, market.id)}
onClick={(e) => {
@@ -382,7 +383,7 @@ export const columnsPositionMarkets = (
kind: ColumnKind.Market,
value: (
handleKeyPress(event, market.id)}
onClick={(e) => {
diff --git a/apps/trading/components/welcome-dialog/welcome-landing-dialog.tsx b/apps/trading/components/welcome-dialog/welcome-landing-dialog.tsx
index cb09d0563..02d5c3540 100644
--- a/apps/trading/components/welcome-dialog/welcome-landing-dialog.tsx
+++ b/apps/trading/components/welcome-dialog/welcome-landing-dialog.tsx
@@ -12,9 +12,9 @@ import {
} from '../select-market';
import { WelcomeDialogHeader } from './welcome-dialog-header';
import { Link, useNavigate, useParams } from 'react-router-dom';
-import { EMPTY_MARKET_ID } from '../constants';
import { useGlobalStore } from '../../stores';
import { ProposedMarkets } from './proposed-markets';
+import { Links, Routes } from '../../pages/client-router';
export const SelectMarketLandingTable = ({
markets,
@@ -25,8 +25,7 @@ export const SelectMarketLandingTable = ({
}) => {
const params = useParams();
const navigate = useNavigate();
- const isEmpty = params.marketId === EMPTY_MARKET_ID;
- const marketId = isEmpty ? undefined : params.marketId;
+ const marketId = params.marketId;
const { update } = useGlobalStore((store) => ({
update: store.update,
@@ -36,7 +35,7 @@ export const SelectMarketLandingTable = ({
(id: string) => {
if (id && id !== marketId) {
update({ marketId: id });
- navigate(`/markets/${id}`);
+ navigate(Links[Routes.MARKET](id));
}
},
[marketId, update, navigate]
@@ -87,7 +86,7 @@ export const SelectMarketLandingTable = ({
onClose()}
>
diff --git a/apps/trading/pages/client-router.tsx b/apps/trading/pages/client-router.tsx
index 260e6c8b8..78bcee9b3 100644
--- a/apps/trading/pages/client-router.tsx
+++ b/apps/trading/pages/client-router.tsx
@@ -1,8 +1,10 @@
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/react-helpers';
import { Splash } from '@vegaprotocol/ui-toolkit';
+import trimEnd from 'lodash/trimEnd';
const LazyHome = dynamic(() => import('../client-pages/home'), {
ssr: false,
@@ -26,11 +28,24 @@ const LazyPortfolio = dynamic(() => import('../client-pages/portfolio'), {
export enum Routes {
HOME = '/',
- MARKETS = '/markets',
+ MARKET = '/markets',
+ MARKETS = '/markets/all',
PORTFOLIO = '/portfolio',
+ LIQUIDITY = 'liquidity/:marketId',
}
-const routerConfig = [
+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: ,
@@ -40,11 +55,20 @@ const routerConfig = [
element: ,
},
{
- path: 'markets/:marketId',
- element: ,
+ path: Routes.MARKET,
+ children: [
+ {
+ index: true,
+ element: ,
+ },
+ {
+ path: ':marketId',
+ element: ,
+ },
+ ],
},
{
- path: 'liquidity/:marketId',
+ path: Routes.LIQUIDITY,
element: ,
},
{
diff --git a/libs/environment/src/hooks/use-links.ts b/libs/environment/src/hooks/use-links.ts
index f836ec56f..a2952fb75 100644
--- a/libs/environment/src/hooks/use-links.ts
+++ b/libs/environment/src/hooks/use-links.ts
@@ -91,6 +91,7 @@ export const BLOG = 'https://blog.vega.xyz/';
export const TOKEN_NEW_MARKET_PROPOSAL = '/governance/propose/new-market';
export const TOKEN_NEW_NETWORK_PARAM_PROPOSAL =
'/governance/propose/network-parameter';
+export const TOKEN_GOVERNANCE = '/governance';
export const TOKEN_PROPOSALS = '/governance';
export const TOKEN_PROPOSAL = '/governance/:id';
@@ -99,3 +100,9 @@ export const EXPLORER_TX = '/txs/:hash';
// Etherscan pages
export const ETHERSCAN_TX = '/tx/:hash';
+
+// Console pages
+export const CONSOLE_MARKET = '/markets/:marketId';
+export const CONSOLE_MARKETS = '/markets/all';
+export const CONSOLE_PORTFOLIO = '/portfolio';
+export const CONSOLE_LIQUIDITY = 'liquidity/:marketId';