import { RouterProvider, createBrowserRouter, redirect } from 'react-router-dom'; import { AuthCreateScreen } from '@app/auth/create'; import { CreateStep1Screen } from '@app/auth/create/step-1'; import { CreateStep2Screen } from '@app/auth/create/step-2'; import { CreateStep3Screen } from '@app/auth/create/step-3'; import { AuthImportScreen } from '@app/auth/import'; import { ImportStep1Screen } from '@app/auth/import/step-1'; import { ImportStep2Screen } from '@app/auth/import/step-2'; import { ImportStep3Screen } from '@app/auth/import/step-3'; import { MigrateScreen } from '@app/auth/migrate'; import { OnboardingScreen } from '@app/auth/onboarding'; import { ResetScreen } from '@app/auth/reset'; import { UnlockScreen } from '@app/auth/unlock'; import { WelcomeScreen } from '@app/auth/welcome'; import { ChatScreen } from '@app/chats'; import { ErrorScreen } from '@app/error'; import { EventScreen } from '@app/events'; import { AccountSettingsScreen } from '@app/settings/account'; import { GeneralSettingsScreen } from '@app/settings/general'; import { ShortcutsSettingsScreen } from '@app/settings/shortcuts'; import { SpaceScreen } from '@app/space'; import { SplashScreen } from '@app/splash'; import { TrendingScreen } from '@app/trending'; import { UserScreen } from '@app/users'; import { getActiveAccount } from '@libs/storage'; import { AppLayout } from '@shared/appLayout'; import { AuthLayout } from '@shared/authLayout'; import { LoaderIcon } from '@shared/icons'; import { SettingsLayout } from '@shared/settingsLayout'; import './index.css'; const appLoader = async () => { const account = await getActiveAccount(); const stronghold = sessionStorage.getItem('stronghold'); const privkey = JSON.parse(stronghold).state.privkey || null; if (!account) { return redirect('/auth/welcome'); } if (account && account.privkey.length > 35) { return redirect('/auth/migrate'); } if (account && !privkey) { return redirect('/auth/unlock'); } return null; }; const router = createBrowserRouter([ { path: '/', element: , errorElement: , loader: appLoader, children: [ { path: '', element: }, { path: 'trending', element: }, { path: 'events/:id', element: }, { path: 'users/:pubkey', element: }, { path: 'chats/:pubkey', element: }, ], }, { path: '/splashscreen', element: , errorElement: , }, { path: '/auth', element: , children: [ { path: 'welcome', element: }, { path: 'onboarding', element: }, { path: 'import', element: , children: [ { path: '', element: }, { path: 'step-2', element: }, { path: 'step-3', element: }, ], }, { path: 'create', element: , children: [ { path: '', element: }, { path: 'step-2', element: }, { path: 'step-3', element: }, ], }, { path: 'unlock', element: }, { path: 'migrate', element: }, { path: 'reset', element: }, ], }, { path: '/settings', element: , children: [ { path: 'general', element: }, { path: 'shortcuts', element: }, { path: 'account', element: }, ], }, ]); export default function App() { return ( } future={{ v7_startTransition: true }} /> ); }