metacubexd/src/App.tsx

46 lines
1.3 KiB
TypeScript
Raw Normal View History

2023-08-27 22:25:41 +08:00
import { Route, Routes, useNavigate } from '@solidjs/router'
import { Show, onMount } from 'solid-js'
2023-08-24 04:20:53 +08:00
import { Header } from '~/components/Header'
import { Config } from '~/pages/Config'
import { Connections } from '~/pages/Connections'
import { Logs } from '~/pages/Logs'
import { Overview } from '~/pages/Overview'
import { Proxies } from '~/pages/Proxies'
import { Rules } from '~/pages/Rules'
import { Setup } from '~/pages/Setup'
2023-08-27 22:25:41 +08:00
import { curTheme, selectedEndpoint } from '~/signals'
2023-08-24 04:20:53 +08:00
export const App = () => {
const navigate = useNavigate()
onMount(() => {
if (!selectedEndpoint()) {
navigate('/setup')
}
})
return (
<div
2023-08-27 22:25:41 +08:00
class="relative h-screen flex-col overflow-y-auto p-4 subpixel-antialiased"
data-theme={curTheme()}
>
2023-08-27 22:25:41 +08:00
<Header />
2023-08-24 04:20:53 +08:00
2023-08-27 22:25:41 +08:00
<div class="flex-1 py-4">
2023-08-24 04:20:53 +08:00
<Routes>
<Show when={selectedEndpoint()}>
<Route path="/" component={Overview} />
<Route path="/proxies" component={Proxies} />
<Route path="/rules" component={Rules} />
<Route path="/conns" component={Connections} />
<Route path="/logs" component={Logs} />
<Route path="/config" component={Config} />
</Show>
<Route path="/setup" component={Setup} />
</Routes>
</div>
</div>
)
}