import useSWR from 'swr' import fetcher from './lib/fetcher' import withBaseUrl from './lib/withBaseURL' import { App } from './App' import { SetToken } from './components/TokenInput' import { useStore } from './useStore' import { createBrowserRouter, redirect, RouterProvider } from 'react-router-dom' import { ErrorPage } from './components/ErrorPage' import { Settings } from './routes/Settings' import Onboarding, { onboardingRoutes } from './routes/Onboarding' const router = createBrowserRouter([ { path: '/', element: , errorElement: , loader: () => { const store = localStorage.getItem('store') if (store === null) { return redirect('/onboarding') } else { const status = JSON.parse(store).state.onboardingStatus if (status !== 'done' && status !== 'dismissed') { return redirect('/onboarding/' + status) } } return null }, }, { path: '/settings', element: , }, { path: '/onboarding', element: , children: onboardingRoutes, }, ]) export const Auth = () => { const { data: user } = useSWR(withBaseUrl('/user'), fetcher) as any const { token } = useStore((s) => ({ token: s.token, })) const isLocalHost = typeof window !== 'undefined' && window.location.hostname === 'localhost' if ((window as any).__TAURI__ && !token) { return } if (!user && !isLocalHost) { return ( <> ) } return }