NeoScan_Physician/app/navigation/TabNavigator.tsx
2025-07-21 18:47:22 +05:30

56 lines
1.9 KiB
TypeScript

/*
* File: TabNavigator.tsx
* Description: Bottom tab navigator with Dashboard, CaseReview, and Profile tabs
* Design & Developed by Tech4Biz Solutions
* Copyright (c) Spurrin Innovations. All rights reserved.
*/
import React from 'react';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { DashboardNavigator } from '../modules/Dashboard/navigation';
import { CaseReviewNavigator } from '../modules/CaseReview/navigation';
import { ProfileNavigator } from '../modules/Profile/navigation';
import { Colors } from '../../shared/src/theme';
import { CustomIcon } from '../../shared/src/components/Icons';
export type TabParamList = {
Dashboard: undefined;
CaseReview: undefined;
Profile: undefined;
};
const Tab = createBottomTabNavigator<TabParamList>();
/**
* TabNavigator - bottom tab navigation for main app
*/
const TabNavigator: React.FC = () => (
<Tab.Navigator
initialRouteName="Dashboard"
screenOptions={({ route }) => ({
headerShown: false,
tabBarActiveTintColor: Colors.primary,
tabBarInactiveTintColor: Colors.textMuted,
tabBarStyle: { backgroundColor: Colors.background },
tabBarIcon: ({ color, size }) => {
let iconName = '';
if (route.name === 'Dashboard') iconName = 'view-dashboard';
else if (route.name === 'CaseReview') iconName = 'file-search';
else if (route.name === 'Profile') iconName = 'account-circle';
return <CustomIcon name={iconName} size={size} color={color} />;
},
})}
>
<Tab.Screen name="Dashboard" component={DashboardNavigator} />
<Tab.Screen name="CaseReview" component={CaseReviewNavigator} />
<Tab.Screen name="Profile" component={ProfileNavigator} />
</Tab.Navigator>
);
export default TabNavigator;
/*
* End of File: TabNavigator.tsx
* Design & Developed by Tech4Biz Solutions
* Copyright (c) Spurrin Innovations. All rights reserved.
*/