56 lines
1.9 KiB
TypeScript
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.
|
|
*/
|