all repos — caroster @ 8a4f9e069b406ad3b9c2405dbef767b2a5304477

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

frontend/containers/EventBar/LinkedEventSwitch.tsx (view raw)

 1import {Button, ButtonGroup, useMediaQuery} from '@mui/material';
 2import {useTranslation} from 'next-i18next';
 3import useEventStore from '../../stores/useEventStore';
 4import Link from 'next/link';
 5import {useRouter} from 'next/router';
 6import theme from '../../theme';
 7
 8type Props = {};
 9
10const LinkedEventSwitch = (props: Props) => {
11  const {t} = useTranslation();
12  const router = useRouter();
13  const isMobile = useMediaQuery(theme.breakpoints.down('md'));
14  const loadedEvent = useEventStore(s => s.event);
15  const linkedEvent = loadedEvent?.linkedEvent?.data?.attributes;
16
17  if (!loadedEvent || !linkedEvent) return null;
18
19  const goEvent = loadedEvent.isReturnEvent ? linkedEvent : loadedEvent;
20  const returnEvent = loadedEvent.isReturnEvent ? loadedEvent : linkedEvent;
21
22  return (
23    <ButtonGroup variant="contained" fullWidth={isMobile}>
24      <Link
25        href={router.asPath.replace(loadedEvent.uuid, goEvent.uuid)}
26        style={{width: isMobile && '100%'}}
27      >
28        <Button
29          color={loadedEvent.isReturnEvent ? 'inherit' : 'primary'}
30          sx={{
31            color: loadedEvent.isReturnEvent
32              ? 'rgba(0, 0, 0, 0.87)'
33              : 'rgba(255, 255, 255, 0.87)',
34          }}
35        >
36          {t`event.linked.goEvent`} ({goEvent.travels?.data?.length || 0})
37        </Button>
38      </Link>
39      <Link
40        href={router.asPath.replace(loadedEvent.uuid, returnEvent.uuid)}
41        style={{width: isMobile && '100%'}}
42      >
43        <Button
44          color={!loadedEvent.isReturnEvent ? 'inherit' : 'primary'}
45          sx={{
46            color: !loadedEvent.isReturnEvent
47              ? 'rgba(0, 0, 0, 0.87)'
48              : 'rgba(255, 255, 255, 0.87)',
49          }}
50        >
51          {t`event.linked.returnEvent`} (
52          {returnEvent?.travels?.data?.length || 0})
53        </Button>
54      </Link>
55    </ButtonGroup>
56  );
57};
58
59export default LinkedEventSwitch;