all repos — caroster @ mdraps-main-patch-e989

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

frontend/containers/TripAlertsList/ListHeader.tsx (view raw)

 1import {Box, Divider, Typography} from '@mui/material';
 2import {useMemo} from 'react';
 3import {useTranslation} from 'react-i18next';
 4import useEventStore from '../../stores/useEventStore';
 5
 6type Props = {};
 7
 8const ListHeader = (props: Props) => {
 9  const {t} = useTranslation();
10  const event = useEventStore(s => s.event);
11  const travels = useMemo(
12    () =>
13      event?.travels?.data?.length > 0 ? event?.travels?.data.slice() : [],
14    [event?.travels?.data]
15  );
16
17  const count = useMemo(() => {
18    if (!travels) return;
19    return travels.reduce((count, {attributes: {seats, passengers}}) => {
20      if (!seats) return 0;
21      else if (!passengers) return count + seats;
22      return count + seats - passengers?.data?.length;
23    }, 0);
24  }, [travels]);
25
26  return (
27    <>
28      <Box p={2}>
29        <Typography variant="h5">{t('passenger.title')}</Typography>
30        <Typography variant="overline">
31          {t('passenger.availability.seats', {count})}
32        </Typography>
33        <Typography variant="body2" mt={2} whiteSpace="pre-line">
34          {t`passenger.waitingList.helper`}
35        </Typography>
36      </Box>
37      <Divider />
38    </>
39  );
40};
41
42export default ListHeader;