MCPcopy Create free account
hub / github.com/codealong-dev/ride-sharing / DriverMap

Function DriverMap

web/src/components/DriverMap.tsx:41–192  ·  view source on GitHub ↗
({ packageSlug }: { packageSlug: CarPackageSlug })

Source from the content-addressed store, hash-verified

39});
40
41export const DriverMap = ({ packageSlug }: { packageSlug: CarPackageSlug }) => {
42 const mapRef = useRef<L.Map>(null)
43 const userID = useMemo(() => crypto.randomUUID(), [])
44 const [riderLocation, setRiderLocation] = useState<Coordinate>(START_LOCATION)
45
46 const driverGeohash = useMemo(() =>
47 Geohash.encode(riderLocation?.latitude, riderLocation?.longitude, 7)
48 , [riderLocation?.latitude, riderLocation?.longitude]);
49
50 const {
51 error,
52 driver,
53 tripStatus,
54 requestedTrip,
55 sendMessage,
56 setTripStatus,
57 resetTripStatus,
58 } = useDriverStreamConnection({
59 location: riderLocation,
60 geohash: driverGeohash,
61 userID,
62 packageSlug,
63 })
64
65 const handleMapClick = (e: L.LeafletMouseEvent) => {
66 setRiderLocation({
67 latitude: e.latlng.lat,
68 longitude: e.latlng.lng
69 })
70 }
71
72 const handleAcceptTrip = () => {
73 if (!requestedTrip || !requestedTrip.id || !driver) {
74 alert("No trip ID found or driver is not set")
75 return
76 }
77
78 sendMessage({
79 type: TripEvents.DriverTripAccept,
80 data: {
81 tripID: requestedTrip.id,
82 riderID: requestedTrip.userID,
83 driver: driver,
84 }
85 })
86
87 setTripStatus(TripEvents.DriverTripAccept)
88
89 }
90
91 const handleDeclineTrip = () => {
92 if (!requestedTrip || !requestedTrip.id || !driver) {
93 alert("No trip ID found or driver is not set")
94 return
95 }
96
97 sendMessage({
98 type: TripEvents.DriverTripDecline,

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected