import { useMemo, useState } from "react"; import { View, TouchableOpacity } from "react-native"; import { Avatar, Divider, Menu, Text, Chip, IconButton, } from "react-native-paper"; import { useAuthContext } from "@/auth/AuthContext"; import { getInitials, getRoleLabel } from "@/utils/userUtils"; export const UserButton = () => { const { user, logout } = useAuthContext(); const [visible, setVisible] = useState(false); const initials = useMemo( () => getInitials(user?.firstName!, user?.lastName!), [user?.firstName, user?.lastName], ); if (!user) return null; return ( setVisible(false)} anchor={ setVisible(true)} className="ml-3" > {user.imageUrl ? ( ) : ( )} } contentStyle={{ minWidth: 300, borderRadius: 12, overflow: "hidden", padding: 0, }} > {user.imageUrl ? ( ) : ( )} {user.firstName} {user.lastName} {user.email} setVisible(false)} accessibilityLabel="Close dialog" style={{ margin: 0 }} /> {getRoleLabel(user.role)} { setVisible(false); await logout(); }} /> ); };