all repos — caroster @ e70935af9e0fac5a21e2c8dd999608ce06538783

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

frontend/containers/Travel/RemovePassengerModal.tsx (view raw)

 1import {useTranslation} from 'next-i18next';
 2import {
 3  Typography,
 4  Dialog,
 5  Button,
 6  DialogContent,
 7  DialogActions,
 8  DialogTitle,
 9} from '@mui/material';
10import useProfile from '../../hooks/useProfile';
11import useEventStore from '../../stores/useEventStore';
12import {PassengerEntity} from '../../generated/graphql';
13
14interface Props {
15  passenger: PassengerEntity;
16  close: () => void;
17  removePassenger: (id: string) => void;
18}
19
20const RemovePassengerModal = ({passenger, close, removePassenger}: Props) => {
21  const {t} = useTranslation();
22  const event = useEventStore(s => s.event);
23  const isCarosterPlus = event.enabled_modules?.includes('caroster-plus');
24  const {userId} = useProfile();
25  const IsPassengerIsUser = passenger.attributes?.user?.data?.id === userId;
26
27  const getDescriptionKey = () => {
28    if (IsPassengerIsUser && isCarosterPlus) {
29      return 'travel.removePassengerModal.plus.self.description';
30    } else if (isCarosterPlus) {
31      return 'travel.removePassengerModal.plus.description';
32    } else if (IsPassengerIsUser) {
33      return 'travel.removePassengerModal.self.description';
34    } else {
35      return 'travel.removePassengerModal.description';
36    }
37  };
38
39  return (
40    <Dialog open={!!passenger} onClose={close}>
41      <DialogTitle>
42        {t(
43          IsPassengerIsUser
44            ? 'travel.removePassengerModal.self.title'
45            : 'travel.removePassengerModal.title'
46        )}
47      </DialogTitle>
48      <DialogContent>
49        <Typography>{t(getDescriptionKey())}</Typography>
50      </DialogContent>
51      <DialogActions>
52        <Button onClick={close}>
53          {t('travel.removePassengerModal.cancel')}
54        </Button>
55        <Button
56          variant="contained"
57          onClick={() => removePassenger(passenger.id)}
58        >
59          {t(
60            IsPassengerIsUser
61              ? 'travel.removePassengerModal.self.remove'
62              : 'travel.removePassengerModal.remove'
63          )}
64        </Button>
65      </DialogActions>
66    </Dialog>
67  );
68};
69
70export default RemovePassengerModal;