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 }}
/>
);
}