import type { RouteObject } from 'react-router-dom'; import { useLocation, useRoutes } from 'react-router-dom'; import { NotFound } from './components/NotFound.js'; import { ActiveTransactionsPage } from './pages/ActiveTransactionsPage/ActiveTransactionsPage.js'; import { LanguagesPage } from './pages/LanguagesPage.js'; import { MainPage } from './pages/MainPage/MainPage.js'; import { RoutesPage } from './pages/RoutesPage/RoutesPage.js'; import { SelectChainPage } from './pages/SelectChainPage/SelectChainPage.js'; import { SelectEnabledToolsPage } from './pages/SelectEnabledToolsPage.js'; import { SelectTokenPage } from './pages/SelectTokenPage/SelectTokenPage.js'; import { SelectWalletPage } from './pages/SelectWalletPage/SelectWalletPage.js'; import { BookmarksPage } from './pages/SendToWallet/BookmarksPage.js'; import { ConnectedWalletsPage } from './pages/SendToWallet/ConnectedWalletsPage.js'; import { RecentWalletsPage } from './pages/SendToWallet/RecentWalletsPage.js'; import { SendToConfiguredWalletPage } from './pages/SendToWallet/SendToConfiguredWalletPage.js'; import { SendToWalletPage } from './pages/SendToWallet/SendToWalletPage.js'; import { SettingsPage } from './pages/SettingsPage/SettingsPage.js'; import { TransactionDetailsPage } from './pages/TransactionDetailsPage/TransactionDetailsPage.js'; import { TransactionHistoryPage } from './pages/TransactionHistoryPage/TransactionHistoryPage.js'; import { TransactionPage } from './pages/TransactionPage/TransactionPage.js'; import { navigationRoutes } from './utils/navigationRoutes.js'; // 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.sendToWallet, element: , }, { path: `${navigationRoutes.sendToWallet}/${navigationRoutes.bookmarks}`, element: , }, { path: `${navigationRoutes.sendToWallet}/${navigationRoutes.recentWallets}`, element: , }, { path: `${navigationRoutes.sendToWallet}/${navigationRoutes.connectedWallets}`, element: , }, { path: navigationRoutes.configuredWallets, 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 = () => { // debug purpose // const location = useLocation(); // console.log('>>> location', location.pathname); const element = useRoutes(routes); return element; };