Yaltopia-Tickets-App/app/(tabs)/_layout.tsx
“kirukib” 3b471df8d5 feat: finalize app with swagger-based pages, Lucide icons, mobile UI
- Add Lucide React Native icon library and use across tabs and screens
- Mobile-like design: rounded cards (xl/2xl), section dividers, icon chips, chevrons
- New pages from swagger: register, invoices/[id], reports, documents, settings
- Invoice detail: amount, bill to, items, Share/PDF actions (GET /invoices/{id})
- Register screen with link to login (POST /auth/register)
- Reports list with mock data and download (GET /reports)
- Documents list with upload CTA (GET /documents)
- Settings: notifications link, language, about
- Profile: links to Notifications, Reports, Documents, Settings
- Home: invoice rows navigate to /invoices/[id]
- Login ↔ Register navigation
- Keep orange (#ea580c) and dark navbar (#2d2d2d) theme throughout
- README: update screens table with new routes

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 23:04:04 +03:00

65 lines
1.9 KiB
TypeScript

import { Tabs } from 'expo-router';
import { Home, ScanLine, FileText, Wallet, User } from '@/lib/icons';
const NAV_BG = '#2d2d2d';
const ACTIVE_TINT = '#ea580c';
const INACTIVE_TINT = '#a1a1aa';
export default function TabsLayout() {
return (
<Tabs
screenOptions={{
headerStyle: { backgroundColor: NAV_BG },
headerTintColor: '#ffffff',
headerTitleStyle: { fontWeight: '600', fontSize: 18 },
tabBarStyle: { backgroundColor: NAV_BG, paddingTop: 8 },
tabBarActiveTintColor: ACTIVE_TINT,
tabBarInactiveTintColor: INACTIVE_TINT,
tabBarLabelStyle: { fontSize: 11 },
tabBarShowLabel: true,
}}
>
<Tabs.Screen
name="index"
options={{
title: 'Home',
tabBarLabel: 'Home',
tabBarIcon: ({ color, size }) => <Home color={color} size={size ?? 22} strokeWidth={2} />,
}}
/>
<Tabs.Screen
name="scan"
options={{
title: 'Scan Invoice',
tabBarLabel: 'Scan',
tabBarIcon: ({ color, size }) => <ScanLine color={color} size={size ?? 22} strokeWidth={2} />,
}}
/>
<Tabs.Screen
name="proforma"
options={{
title: 'Proforma',
tabBarLabel: 'Proforma',
tabBarIcon: ({ color, size }) => <FileText color={color} size={size ?? 22} strokeWidth={2} />,
}}
/>
<Tabs.Screen
name="payments"
options={{
title: 'Payments',
tabBarLabel: 'Payments',
tabBarIcon: ({ color, size }) => <Wallet color={color} size={size ?? 22} strokeWidth={2} />,
}}
/>
<Tabs.Screen
name="profile"
options={{
title: 'Profile',
tabBarLabel: 'Profile',
tabBarIcon: ({ color, size }) => <User color={color} size={size ?? 22} strokeWidth={2} />,
}}
/>
</Tabs>
);
}