c6d4c30461
- react-router: Türkçe adresler (/defter, /plan, /birikim, ...), 404 sayfası - Korumalı sayfalar: oturum yoksa /giris?donus=..., girişten sonra geri dönüş - Açık yönlendirme koruması (safeReturnPath, 10 test) - İskelet: mobilde 5 öğeli alt menü, masaüstünde sol kenar çubuğu - Diğer sayfası (değerlendirme, raporlar, ayarlar, tema, çıkış) - Arayüz metinleri lib/strings.ts'de toplanmaya başlandı - Tasarım önizlemesi /dev/tasarim (yalnızca geliştirmede) - Düzeltme: çıkışta önbellek temizliği ekranı güncellemiyordu Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import {
|
||
CalendarDays,
|
||
ChartLine,
|
||
ClipboardCheck,
|
||
LayoutDashboard,
|
||
Menu,
|
||
NotebookPen,
|
||
PiggyBank,
|
||
Settings,
|
||
type LucideIcon,
|
||
} from 'lucide-react'
|
||
import { t } from '@/lib/strings'
|
||
|
||
export type NavItem = { to: string; label: string; icon: LucideIcon }
|
||
|
||
/** Sayfa adresleri tek yerde */
|
||
export const paths = {
|
||
dashboard: '/',
|
||
ledger: '/defter',
|
||
planning: '/plan',
|
||
savings: '/birikim',
|
||
more: '/diger',
|
||
review: '/degerlendirme',
|
||
reports: '/raporlar',
|
||
settings: '/ayarlar',
|
||
login: '/giris',
|
||
register: '/kayit',
|
||
} as const
|
||
|
||
const dashboard: NavItem = { to: paths.dashboard, label: t.nav.dashboard, icon: LayoutDashboard }
|
||
const ledger: NavItem = { to: paths.ledger, label: t.nav.ledger, icon: NotebookPen }
|
||
const planning: NavItem = { to: paths.planning, label: t.nav.planning, icon: CalendarDays }
|
||
const savings: NavItem = { to: paths.savings, label: t.nav.savings, icon: PiggyBank }
|
||
const review: NavItem = { to: paths.review, label: t.nav.review, icon: ClipboardCheck }
|
||
const reports: NavItem = { to: paths.reports, label: t.nav.reports, icon: ChartLine }
|
||
const settings: NavItem = { to: paths.settings, label: t.nav.settings, icon: Settings }
|
||
|
||
/** Mobil alt menü: 5 öğe (KAKEIBO_PROMPT §9) */
|
||
export const bottomNav: NavItem[] = [
|
||
dashboard,
|
||
ledger,
|
||
planning,
|
||
savings,
|
||
{ to: paths.more, label: t.nav.more, icon: Menu },
|
||
]
|
||
|
||
/** "Diğer" altında toplananlar (mobil) */
|
||
export const moreNav: NavItem[] = [review, reports, settings]
|
||
|
||
/** Masaüstü sol menü: hepsi doğrudan */
|
||
export const sideNav: NavItem[] = [dashboard, ledger, planning, review, savings, reports, settings]
|