import {ReactNode, useReducer} from 'react'; import { ListItemAvatar, ListItemIcon, ListItemText, Chip, Box, Typography, Icon, useTheme, } from '@mui/material'; import {useTranslation} from 'react-i18next'; import useProfile from '../../hooks/useProfile'; import {PassengerEntity} from '../../generated/graphql'; import DrawerPassenger from '../DrawerPassenger'; import usePermissions from '../../hooks/usePermissions'; interface Props { passenger?: PassengerEntity; button?: ReactNode; isTravel?: boolean; } const Passenger = (props: Props) => { const {passenger, button, isTravel} = props; const theme = useTheme(); const {t} = useTranslation(); const [openDrawerPassenger, toggleDrawerPassenger] = useReducer( i => !i, false ); const { userPermissions: {canSeePassengerDetails}, } = usePermissions(); const {userId} = useProfile(); const isUser = `${userId}` === passenger?.attributes.user?.data?.id; const showLocation = isTravel ? null : ( {passenger.attributes.location} ); if (passenger) { return ( person_outlined {passenger.attributes.name} {isUser && ( )} {showLocation} } /> {button} {canSeePassengerDetails(passenger) && ( toggleDrawerPassenger()} firstName={passenger?.attributes.user?.data?.attributes.firstName} lastName={passenger?.attributes.user?.data?.attributes.lastName} email={passenger?.attributes.email} phone={passenger?.attributes.phone} /> )} ); } else { return ( <> person ); } }; export default Passenger;