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;