import { Navigate, Route, Routes, useNavigate } from '@solidjs/router' import { Show, createEffect, lazy, onMount } from 'solid-js' import { Header } from '~/components' import { ROUTES } from '~/constants' import { curTheme, endpoint, renderProxiesInSamePage, selectedEndpoint, useAutoSwitchTheme, useProxies, useTwemoji, } from '~/signals' const Setup = lazy(() => import('~/pages/Setup')) const Overview = lazy(() => import('~/pages/Overview')) const Connections = lazy(() => import('~/pages/Connections')) const Logs = lazy(() => import('~/pages/Logs')) const Proxies = lazy(() => import('~/pages/Proxies')) const ProxyProvider = lazy(() => import('~/pages/ProxyProvider')) const Rules = lazy(() => import('~/pages/Rules')) const Config = lazy(() => import('~/pages/Config')) export const App = () => { const navigate = useNavigate() useAutoSwitchTheme() createEffect(() => { if (selectedEndpoint() && endpoint()) { void useProxies().updateProxies() } const rootElement = document.querySelector(':root') as HTMLElement if (useTwemoji()) { rootElement.style.setProperty( 'font-family', "'Fira Sans', 'Twemoji Mozilla', system-ui, monospace", ) } else { rootElement.style.setProperty( 'font-family', "'Fira Sans', system-ui, monospace", ) } }) onMount(() => { if (!selectedEndpoint()) { navigate(ROUTES.Setup) } }) return (