import type { RouteObject } from 'react-router-dom';
import { useLocation, useRoutes } from 'react-router-dom';
import { NotFound } from './components/NotFound';
import { ActiveTransactionsPage } from './pages/ActiveTransactionsPage';
import { LanguagesPage } from './pages/LanguagesPage';
import { MainPage } from './pages/MainPage';
import { RoutesPage } from './pages/RoutesPage';
import { SelectChainPage } from './pages/SelectChainPage';
import { SelectEnabledToolsPage } from './pages/SelectEnabledToolsPage';
import { SelectTokenPage } from './pages/SelectTokenPage';
import { SelectWalletPage } from './pages/SelectWalletPage';
import { SettingsPage } from './pages/SettingsPage';
import { TransactionDetailsPage } from './pages/TransactionDetailsPage';
import { TransactionHistoryPage } from './pages/TransactionHistoryPage';
import { TransactionPage } from './pages/TransactionPage';
import { navigationRoutes } from './utils';
// SelectWalletPage should be accessible from every page and this handler helps avoid creating multiple paths.
// Avoid using it for anything else, we need to come up with a better solution once we have one more page accessible from everywhere.
const NotFoundRouteHandler = () => {
const { pathname } = useLocation();
return pathname.includes(navigationRoutes.selectWallet) ? (
) : (
);
};
const routes: RouteObject[] = [
{
path: '/',
element: ,
},
{
path: navigationRoutes.settings,
element: ,
},
{
path: `${navigationRoutes.settings}/${navigationRoutes.bridges}`,
element: ,
},
{
path: `${navigationRoutes.settings}/${navigationRoutes.exchanges}`,
element: ,
},
{
path: `${navigationRoutes.settings}/${navigationRoutes.languages}`,
element: ,
},
{
path: navigationRoutes.fromToken,
element: ,
},
{
path: navigationRoutes.toToken,
element: ,
},
{
path: navigationRoutes.toTokenNative,
element: ,
},
{
path: `${navigationRoutes.fromToken}?/${navigationRoutes.fromChain}`,
element: ,
},
{
path: `${navigationRoutes.toToken}?/${navigationRoutes.toChain}`,
element: ,
},
{
path: navigationRoutes.routes,
element: ,
},
{
path: navigationRoutes.activeTransactions,
element: ,
},
{
path: navigationRoutes.transactionHistory,
element: ,
},
{
path: `${navigationRoutes.transactionHistory}?/${navigationRoutes.routes}?/${navigationRoutes.transactionExecution}?/${navigationRoutes.transactionDetails}`,
element: ,
},
{
path: `${navigationRoutes.routes}?/${navigationRoutes.activeTransactions}?/${navigationRoutes.transactionExecution}`,
element: ,
},
{
path: '*',
element: ,
},
];
export const AppRoutes = () => {
const element = useRoutes(routes);
return element;
};