import React from 'react'; import { View, Text, StyleSheet, Pressable } from 'react-native'; import Svg, { Path } from 'react-native-svg'; import Animated, { FadeIn, FadeOut, Layout } from 'react-native-reanimated'; import { useTheme } from '../../../theme'; import { haptics } from '../../../services/haptics/haptics'; import type { LoginRole } from '../../../types/app'; interface LoginRoleTabsProps { activeRole: LoginRole; onRoleChange: (role: LoginRole) => void; } const ROLES: LoginRole[] = ['User', 'Employee', 'Agent']; const ActiveTabBackground = () => ( ); export const LoginRoleTabs: React.FC = ({ activeRole, onRoleChange }) => { const theme = useTheme(); return ( {ROLES.map((role, index) => { const isActive = activeRole === role; return ( { if (!isActive) { haptics.selection(); onRoleChange(role); } }} style={({ pressed }) => [ styles.tab, index > 0 && { marginLeft: isActive ? -10 : 0 }, isActive && { zIndex: 10 }, pressed && !isActive && { opacity: 0.6 }, pressed && isActive && { transform: [{ scale: 0.98 }] } ]} > {isActive && } {role} ); })} ); }; const styles = StyleSheet.create({ container: { flexDirection: 'row', alignItems: 'flex-end', marginBottom: -1, zIndex: 10, marginLeft: 0, }, tab: { justifyContent: 'center', alignItems: 'center', height: 38, width: 110, }, tabText: { fontSize: 14, fontWeight: '700', zIndex: 2, transform: [{ translateX: -4 }], }, activeText: { color: '#FFFFFF', }, inactiveText: { fontWeight: '600', }, });