all repos — caroster @ ac45f0212dacd0394405edf159806f70927c2e13

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

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

 1import {CircleMarker} from 'react-leaflet';
 2import {useTheme} from '@mui/material';
 3import TravelPopup from './TravelPopup';
 4import {Travel} from '../../generated/graphql';
 5import {useRef, useState} from 'react';
 6
 7interface Props {
 8  travel: Travel & {id: string};
 9  focused: boolean;
10}
11
12const TravelMarker = ({travel, focused}: Props) => {
13  const {meeting_longitude, meeting_latitude} = travel;
14  const markerRef = useRef(null);
15  const theme = useTheme();
16  const marker = markerRef.current;
17
18  if (marker && focused) {
19    marker.openPopup();
20  }
21
22  const markerStyle = {
23    radius: 12,
24    fillColor: theme.palette.primary.main,
25    color: theme.palette.background.paper,
26    fillOpacity: 1,
27    opacity: 1,
28    weight: 3,
29  };
30
31  return (
32    <CircleMarker
33      ref={markerRef}
34      {...markerStyle}
35      center={[meeting_latitude, meeting_longitude]}
36    >
37      <TravelPopup travel={travel} />
38    </CircleMarker>
39  );
40};
41
42export default TravelMarker;