mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
* envs and feature setup * home page layout * cross-chain txs page * cross-chain transfers page * cross-chain transfers on tx page * cross-chain messages on tx page * cross-chain tx page * cross-chain tx details token transfers * stats and counters for lists * migrate to new API version * add swagger * mobile lists * placeholder views on address page * tests * fix adaptive tabs initial state when there is only one tab in the list * tweaks * bug fixes * fix tests * update screenshots * migrate to new api version * add chain label tooltip, copy button to txs in lists and same address highlight * list views on address page * fix tests * fix links to current address in the list views * update tooltips * update tables layout * review fixes * fix spelling * update screenshots * update screenshot
30 lines
962 B
TypeScript
30 lines
962 B
TypeScript
import type { ExternalChain } from 'types/externalChains';
|
|
|
|
import type { Route } from 'nextjs-routes';
|
|
import { route as nextjsRoute } from 'nextjs-routes';
|
|
|
|
import { stripTrailingSlash } from 'toolkit/utils/url';
|
|
|
|
export interface RouteParams {
|
|
external?: boolean;
|
|
chain?: ExternalChain & { slug?: string };
|
|
}
|
|
|
|
export const route = (route: Route, params?: RouteParams | null) => {
|
|
const generatedRoute = nextjsRoute(routeParams(route, params));
|
|
|
|
if (params && params.chain && params.external && params.chain.explorer_url) {
|
|
return stripTrailingSlash(params.chain.explorer_url) + generatedRoute;
|
|
}
|
|
|
|
return generatedRoute;
|
|
};
|
|
|
|
export const routeParams = (route: Route, params?: RouteParams | null): Route => {
|
|
if (!params?.external && params?.chain?.slug) {
|
|
const pathname = '/chain/[chain_slug]' + route.pathname;
|
|
return { ...route, pathname, query: { ...route.query, chain_slug: params.chain.slug } } as Route;
|
|
}
|
|
return route;
|
|
};
|