import React from 'react';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { View, Text, StyleSheet } from 'react-native';
import { Feather, MaterialCommunityIcons, FontAwesome5 } from '@expo/vector-icons';
import { colors, borderRadius, typography } from '../theme/colors';
// Screens
import FlowScreen from '../screens/FlowScreen';
import VaultScreen from '../screens/VaultScreen';
import SentinelScreen from '../screens/SentinelScreen';
import HeritageScreen from '../screens/HeritageScreen';
import MeScreen from '../screens/MeScreen';
const Tab = createBottomTabNavigator();
// Custom Tab Bar Button with icon on top and label below
const TabBarItem = ({
name,
label,
focused,
color,
isDark = false
}: {
name: string;
label: string;
focused: boolean;
color: string;
isDark?: boolean;
}) => {
const iconSize = 22;
const renderIcon = () => {
switch (name) {
case 'Flow':
return ;
case 'Vault':
return ;
case 'Sentinel':
return ;
case 'Heritage':
return ;
case 'Me':
return ;
default:
return ;
}
};
const bgColor = focused
? (isDark ? 'rgba(184, 224, 229, 0.12)' : colors.nautical.lightMint)
: 'transparent';
return (
{renderIcon()}
{label}
);
};
export default function TabNavigator() {
return (
(
),
}}
/>
(
),
tabBarStyle: styles.tabBarDark,
}}
/>
(
),
tabBarStyle: styles.tabBarDark,
}}
/>
(
),
}}
/>
(
),
}}
/>
);
}
const styles = StyleSheet.create({
tabBar: {
backgroundColor: colors.nautical.cream,
borderTopWidth: 0,
height: 80,
paddingHorizontal: 4,
shadowColor: colors.nautical.navy,
shadowOffset: { width: 0, height: -6 },
shadowOpacity: 0.06,
shadowRadius: 16,
elevation: 12,
},
tabBarDark: {
backgroundColor: colors.nautical.navy,
borderTopWidth: 0,
height: 80,
paddingHorizontal: 4,
shadowColor: '#000',
shadowOffset: { width: 0, height: -4 },
shadowOpacity: 0.15,
shadowRadius: 12,
elevation: 12,
},
tabItem: {
alignItems: 'center',
justifyContent: 'center',
paddingVertical: 8,
paddingHorizontal: 16,
borderRadius: borderRadius.lg,
minWidth: 64,
},
iconWrapper: {
marginBottom: 4,
},
tabLabel: {
fontSize: 10,
fontWeight: '500',
letterSpacing: 0.3,
},
tabLabelActive: {
fontWeight: '700',
},
});