import * as React from 'react'; import Box from '@mui/material/Box'; import Tabs from '@mui/material/Tabs'; import Tab from '@mui/material/Tab'; import Typography from '@mui/material/Typography'; import { MemoryRouter, Route, Routes, Link, matchPath, useLocation, StaticRouter, } from 'react-router'; function Router(props: { children?: React.ReactNode }) { const { children } = props; if (typeof window === 'undefined') { return {children}; } return ( {children} ); } function useRouteMatch(patterns: readonly string[]) { const { pathname } = useLocation(); for (let i = 0; i < patterns.length; i += 1) { const pattern = patterns[i]; const possibleMatch = matchPath(pattern, pathname); if (possibleMatch !== null) { return possibleMatch; } } return null; } function MyTabs() { // You need to provide the routes in descendant order. // This means that if you have nested routes like: // users, users/new, users/edit. // Then the order should be ['users/add', 'users/edit', 'users']. const routeMatch = useRouteMatch(['/inbox/:id', '/drafts', '/trash']); const currentTab = routeMatch?.pattern?.path; return ( ); } function CurrentRoute() { const location = useLocation(); return ( Current route: {location.pathname} ); } export default function TabsRouter() { return ( } /> ); }