Files
kakeibo/frontend/src/router.tsx
T
suphicakir ca0d3a505c feat(plan): ilk dönem sihirbazı (dönem, gelir, gider, birikim, bütçe)
- /plan/donem-ac?adim=1..5: her adım hemen kaydedilir, adım adreste
- Panel ve Plan'da açık dönem yoksa "Dönemi başlat" kartı
- MoneyInput (sayısal klavye, Türkçe biçim), moneyText/toKurus, period-dates
- lib/periods.ts: dönem, plan kalemi, özet, bütçe ve öneri kancaları
- SummaryTiles, PageLoading/PageError; 13 yeni vitest

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 08:16:32 +03:00

57 lines
2.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { createBrowserRouter, type RouteObject } from 'react-router'
import { AppLayout } from '@/components/layout/app-layout'
import { paths } from '@/components/layout/nav-items'
import { RequireAuth, RequireGuest } from '@/components/layout/require-auth'
import { LoginPage } from '@/features/auth/login-page'
import { RegisterPage } from '@/features/auth/register-page'
import { DashboardPage } from '@/features/dashboard/page'
import { DesignPreview } from '@/features/dev/design-preview'
import { NotFoundPage } from '@/features/errors/not-found-page'
import { LedgerPage } from '@/features/ledger/page'
import { MorePage } from '@/features/more/page'
import { PeriodWizardPage } from '@/features/period-wizard/page'
import { PlanningPage } from '@/features/planning/page'
import { ReportsPage } from '@/features/reports/page'
import { ReviewPage } from '@/features/review/page'
import { SavingsPage } from '@/features/savings/page'
import { SettingsPage } from '@/features/settings/page'
const routes: RouteObject[] = [
// Oturumsuz
{
element: <RequireGuest />,
children: [
{ path: paths.login, element: <LoginPage /> },
{ path: paths.register, element: <RegisterPage /> },
],
},
// Oturumlu (iskelet: kenar çubuğu / alt menü)
{
element: <RequireAuth />,
children: [
{
element: <AppLayout />,
children: [
{ index: true, element: <DashboardPage /> },
{ path: paths.ledger, element: <LedgerPage /> },
{ path: paths.planning, element: <PlanningPage /> },
{ path: paths.periodWizard, element: <PeriodWizardPage /> },
{ path: paths.savings, element: <SavingsPage /> },
{ path: paths.review, element: <ReviewPage /> },
{ path: paths.reports, element: <ReportsPage /> },
{ path: paths.settings, element: <SettingsPage /> },
{ path: paths.more, element: <MorePage /> },
{ path: '*', element: <NotFoundPage /> },
],
},
],
},
]
// Tasarım önizlemesi yalnızca geliştirmede (canlı derlemeye girmez)
if (import.meta.env.DEV) {
routes.unshift({ path: '/dev/tasarim', element: <DesignPreview /> })
}
export const router = createBrowserRouter(routes)