- Create TemplatePage with add form (category/tier/amount), items table, and empty state - Add /template route to App.tsx with TemplatePage component - Add Template nav item to sidebar (between Categories and Settings) - Add template and nav.template i18n keys for EN and DE - Fix unused import in useTemplate hook
46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { useState } from 'react'
|
|
import { BrowserRouter, Routes, Route } from 'react-router-dom'
|
|
import { useAuth } from '@/hooks/useAuth'
|
|
import { AppLayout } from '@/components/AppLayout'
|
|
import { LoginPage } from '@/pages/LoginPage'
|
|
import { RegisterPage } from '@/pages/RegisterPage'
|
|
import { DashboardPage } from '@/pages/DashboardPage'
|
|
import { CategoriesPage } from '@/pages/CategoriesPage'
|
|
import { SettingsPage } from '@/pages/SettingsPage'
|
|
import { TemplatePage } from '@/pages/TemplatePage'
|
|
import '@/i18n'
|
|
|
|
export default function App() {
|
|
const auth = useAuth()
|
|
const [showRegister, setShowRegister] = useState(false)
|
|
|
|
if (auth.loading) {
|
|
return (
|
|
<div className="flex min-h-screen items-center justify-center">
|
|
<div className="text-muted-foreground">Loading...</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
if (!auth.user) {
|
|
return showRegister ? (
|
|
<RegisterPage auth={auth} onToggle={() => setShowRegister(false)} />
|
|
) : (
|
|
<LoginPage auth={auth} onToggle={() => setShowRegister(true)} />
|
|
)
|
|
}
|
|
|
|
return (
|
|
<BrowserRouter>
|
|
<AppLayout auth={auth}>
|
|
<Routes>
|
|
<Route path="/" element={<DashboardPage />} />
|
|
<Route path="/categories" element={<CategoriesPage />} />
|
|
<Route path="/template" element={<TemplatePage />} />
|
|
<Route path="/settings" element={<SettingsPage user={auth.user} onUpdate={auth.refetch} />} />
|
|
</Routes>
|
|
</AppLayout>
|
|
</BrowserRouter>
|
|
)
|
|
}
|