vega-frontend-monorepo/apps/token/src/routes/router-config.tsx

191 lines
4.5 KiB
TypeScript
Raw Normal View History

Feat/224 move token app into monorepo (#229) * moved TFE into monorepo with some remaining errors * moved TFE into monorepo with some remaining errors - further files * add tailwind config, use etherscan link from toolkit, use web3 from lib * make app compatible with react router 6 * remove vega keys from app state and use from state from lib * comment out crowdin script injection * convert all buttons to use ui toolkit buttons * remove blueprint inputs and selects and replace with ui-toolkit * remove css resets * tidy button styles in wallet replace splash-screen with version from ui-toolkit * various style fixes * tidy up proposal list * add valid key to route children * Set custom port and config for token e2e tests * added env title e2e test * started some styling fixes - nav and home route * Added 'h-auto' to button height regex check * Added 'h-auto' to regex check to allow desired TFE button height * Removed scss and used tailwind for heading component * Woff files not woof :) * Proper nav h1 font size * Wallet card headings * Vega wallet button styles * Set project to use static hosted alpha font (cors being fixed separately) * Eth wallet button styles (unfinished) * Home route styles * Staking route styles and title calculation * Rewards route styles * Vega wallet container button style * Eth wallet disconnect button * Connect dialog title colour and spacing * Splash screen layout * Fixed a bunch of linting errors * Used 'Object.entries' instead of 'Array.from' to create iterable from object in 'use-search-params' * Removed use of 'any' from 'use-search-params' * Better simplification of 'use-search-params' * Removed package.json duplication errors, set most up-to-date version from duplicate options * Elvis for possible undefined in 'use-add-asset-to-wallet' * Removed redundant files * Removed old todo * Removed package.json redundant packages * Added dark class for dialog h1 text colour (required as the current scss gives a wrong default for this element) * update useAddAsset to use new provider * Ensure Jest has required methods * tidy up package.json * remove ts-ignores and use casts for dynamic grid imports * remove unused code from token-e2e * update to latest types from react 17 * Removed vegag wallet not running component as it should be handled by wallet lib * fix typing of contract addresses * type cast network string to Network enum in reduce * remove comment, issue 270 created instead * default associated wallet amounts to zero * update comment * delete unused staking-overview component, add note about withTranslation types to comment * re add proposal dates * enable source maps for build * add rest of env files for networks * remove crowdin script tags from index.html * add testing-library/jest-dom to types in test tsconfig * setup i18n for tests so that translations are used, proposal change table test * delete unused translation files and config * set sentry release to use commit ref * delete dex liquidity pages * remove unused useVegaLPStaking hook * use found id so no non null assertion needed * remove mocked graphql provider * remove commented out breadcrumb component * add comment and link to issue for syntax highlighter changes * fix any types in token-input, add link to ui-toolkit input changes * dont default allowance to zero as it affects rendering logic * fix spacing between callouts on associate page * adjust spacing between callout for association callout * fix alignment of ethereum splash screen * use ethereum connect dialog state for connect dialog * add infura provider as default * change from infura provider to JsonRpcProvider * remove unused Ethereum config * add custom webpack config to inject sentry plugin * delete commented out code for pending stake * add comment linking input elements issue for eth-address-input * move useEagerConnect to libs/wallet, add logic for connecting state so token app can load after connection has succeeded or failed * remove unused storage files, update web3 connector to render children if not actively connected Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
2022-04-20 19:37:44 +00:00
import React from 'react';
import { ProposalContainer } from './governance/proposal';
import { ProposalsContainer } from './governance/proposals';
import Home from './home';
import NotFound from './not-found';
import NotPermitted from './not-permitted';
import { RedemptionInformation } from './redemption/home/redemption-information';
import { RedeemFromTranche } from './redemption/tranche';
import { AssociateContainer } from './staking/associate/associate-page-container';
import { DisassociateContainer } from './staking/disassociate/disassociate-page-container';
import { Staking } from './staking/staking';
import { StakingNodeContainer } from './staking/staking-node';
import { StakingNodesContainer } from './staking/staking-nodes-container';
import { Tranche } from './tranches/tranche';
import { Tranches } from './tranches/tranches';
export const Routes = {
HOME: '/',
TRANCHES: '/tranches',
CLAIM: '/claim',
STAKING: '/staking',
REWARDS: '/rewards',
WITHDRAW: '/withdraw',
WITHDRAWALS: '/withdrawals',
GOVERNANCE: '/governance',
VESTING: '/vesting',
NOT_PERMITTED: '/not-permitted',
NOT_FOUND: '/not-found',
CONTRACTS: '/contracts',
};
const LazyTranches = React.lazy(
() =>
import(
/* webpackChunkName: "route-tranches", webpackPrefetch: true */ './tranches'
)
);
const LazyClaim = React.lazy(
() =>
import(
/* webpackChunkName: "route-claim", webpackPrefetch: true */ './claim'
)
);
const LazyRedemption = React.lazy(
() =>
import(
/* webpackChunkName: "route-redemption", webpackPrefetch: true */ './redemption'
)
);
const LazyStaking = React.lazy(
() =>
import(
/* webpackChunkName: "route-staking", webpackPrefetch: true */ './staking'
)
);
const LazyGovernance = React.lazy(
() =>
import(
/* webpackChunkName: "route-governance", webpackPrefetch: true */ './governance'
)
);
const LazyRewards = React.lazy(
() =>
import(
/* webpackChunkName: "route-rewards", webpackPrefetch: true */ './rewards'
)
);
const LazyContracts = React.lazy(
() =>
import(
/* webpackChunkName: "route-tranches", webpackPrefetch: true */ './contracts'
)
);
const LazyWithdraw = React.lazy(
() =>
import(
/* webpackChunkName: "route-withdraw", webpackPrefetch: true */ './withdraw'
)
);
const LazyWithdrawals = React.lazy(
() =>
import(
/* webpackChunkName: "route-withdrawals", webpackPrefetch: true */ './withdrawals'
)
);
const routerConfig = [
{
path: Routes.HOME,
name: 'Home',
// Not lazy as loaded when a user first hits the site
component: Home,
},
{
path: Routes.TRANCHES,
name: 'Tranches',
component: LazyTranches,
children: [
{ index: true, element: <Tranches /> },
{ path: ':trancheId', element: <Tranche /> },
],
},
{
path: Routes.CLAIM,
name: 'Claim',
component: LazyClaim,
},
{
path: Routes.STAKING,
name: 'Staking',
component: LazyStaking,
children: [
{ path: 'associate', element: <AssociateContainer /> },
{ path: 'disassociate', element: <DisassociateContainer /> },
{ path: ':node', element: <StakingNodeContainer /> },
{
index: true,
element: (
<StakingNodesContainer>
{({ data }) => <Staking data={data} />}
</StakingNodesContainer>
),
},
],
},
{
path: Routes.REWARDS,
name: 'Rewards',
component: LazyRewards,
},
{
path: Routes.WITHDRAW,
name: 'Withdraw',
component: LazyWithdraw,
},
{
path: Routes.WITHDRAWALS,
name: 'Withdrawals',
component: LazyWithdrawals,
},
{
path: Routes.VESTING,
name: 'Vesting',
component: LazyRedemption,
children: [
{
index: true,
element: <RedemptionInformation />,
},
{
path: ':id',
element: <RedeemFromTranche />,
},
],
},
{
path: Routes.GOVERNANCE,
name: 'Governance',
component: LazyGovernance,
children: [
{ path: ':proposalId', element: <ProposalContainer /> },
{ index: true, element: <ProposalsContainer /> },
],
},
{
path: Routes.NOT_PERMITTED,
name: 'Not permitted',
// Not lazy as loaded when a user first hits the site
component: NotPermitted,
},
{
path: Routes.CONTRACTS,
name: 'Contracts',
component: LazyContracts,
},
{
path: '*',
name: 'NotFound',
// Not lazy as loaded when a user first hits the site
component: NotFound,
},
];
export default routerConfig;