import List from '@mui/material/List'; import {styled, useTheme} from '@mui/material/styles'; import ListItem from '@mui/material/ListItem'; import Passenger from './Passenger'; import {PassengerEntity} from '../../generated/graphql'; const PREFIX = 'PassengersList'; const classes = { container: `${PREFIX}-container`, passenger: `${PREFIX}-passenger`, }; const Root = styled('div')(({theme}) => ({ [`&.${classes.container}`]: { padding: theme.spacing(0, 0, 1, 0), }, [`& .${classes.passenger}`]: { paddingRight: theme.spacing(12), }, })); interface Props { passengers: PassengerEntity[]; Button: ({ onClick, disabled, }: { onClick: () => void; disabled?: boolean; }) => JSX.Element; disabled?: boolean; isTravel?: boolean; places?: number; onPress?: (passengerId: string) => void; onClick?: (passengerId: string) => void; } const PassengersList = (props: Props) => { const {passengers, places, Button, onClick, onPress, disabled, isTravel} = props; const theme = useTheme(); let list = passengers; if (places) { const emptyList = [...Array(places)]; list = Array.isArray(passengers) ? emptyList.map((u, index) => passengers[index]) : emptyList; } return ( {!!list && list.map((passenger, index) => ( !!onPress && onPress(passenger.id)} > onClick && onClick(passenger.id)} disabled={disabled} /> } /> ))} ); }; export default PassengersList;