import { createBrowserRouter, createRoutesFromElements, Navigate, Route, RouterProvider } from 'react-router-dom'; import { MotionConfig } from 'framer-motion'; // Context Providers import { Provider as ChannelProvider } from './contexts/Channel'; import { Provider as LastFocusedElementProvider } from './contexts/LastFocusedElement'; import { Provider as ModalProvider } from './contexts/Modal'; import { Provider as NotificationProvider } from './contexts/Notification'; import { Provider as ResponsiveDeviceProvider } from './contexts/ResponsiveDevice'; import { Provider as StreamsProvider } from './contexts/Streams'; import { Provider as TooltipsProvider } from './contexts/Tooltips'; import { Provider as UserProvider } from './contexts/User'; import { Provider as ViewerStreamActionsProvider } from './contexts/ViewerStreamActions'; // Pages import { Channel, ChannelDirectory, // Feed, Following, Settings, StreamHealth, StreamManager, UserManagement } from './pages'; // UserManagement Subpages import { RegisterUser, ResetPassword, SigninUser } from './pages/UserManagement/subpages'; // Page Layouts import { AppLayoutWithNavbar, RequireAuth } from './layouts'; const updateTo = (to) => { const { pathname } = new URL(window.location.href); const params = pathname.split('/').filter((part) => part); const replacedTo = to .split('/') .filter((part) => part) .map((part, i) => (part.startsWith(':') ? params[i] : part)) .join('/'); return `/${replacedTo}`; }; const router = createBrowserRouter( createRoutesFromElements( } > } > {/* PUBLIC PAGES - UGC */} } /> }> } /> } /> } /> {/* } /> */} {/* PRIVATE PAGES */} }> } /> } /> } /> } /> } /> } /> } /> {/* PUBLIC PAGES - User Management */} }> } /> } /> } /> ) ); const App = () => ; export default App;