all repos — caroster @ 2e4e192becc64475ea9245eb5fec57f72cb7088e

[Octree] Group carpool to your event https://caroster.io

frontend/containers/PassengersList/index.tsx (view raw)

 1import {ListItem, List, Box} from '@mui/material';
 2import Passenger from './Passenger';
 3import {PassengerEntity, TravelEntity} from '../../generated/graphql';
 4import {ReactNode} from 'react';
 5
 6interface Props {
 7  passengers: PassengerEntity[];
 8  travel?: TravelEntity;
 9  onClickPassenger?: (passengerId: string) => void;
10  Actions?: (props: {passenger: PassengerEntity}) => ReactNode;
11}
12
13const PassengersList = (props: Props) => {
14  const {passengers, onClickPassenger, travel, Actions} = props;
15
16  return (
17    <Box pb={1}>
18      <List disablePadding>
19        {passengers?.map((passenger, index) => (
20          <ListItem
21            key={index}
22            button={!!onClickPassenger}
23            onClick={() => onClickPassenger?.(passenger.id)}
24          >
25            <Passenger
26              key={index}
27              passenger={{
28                id: passenger.id,
29                attributes: {...passenger.attributes, travel: {data: travel}},
30              }}
31              isTravel={!!travel}
32              Actions={Actions}
33            />
34          </ListItem>
35        ))}
36      </List>
37    </Box>
38  );
39};
40
41export default PassengersList;