import type { CircleLayerSpecification } from "@maplibre/maplibre-gl-style-spec"; import { memo } from "react"; import { UserLocationPuckHeading } from "./UserLocationPuckHeading"; import type { BaseProps } from "../../types/BaseProps"; import { Layer } from "../layer/Layer"; const blue = "#33B5E5"; const CIRCLE_LAYERS_PAINT = { accuracy: { "circle-color": blue, "circle-opacity": 0.2, "circle-pitch-alignment": "map", "circle-radius-transition": { duration: 300, delay: 0 }, }, white: { "circle-radius": 9, "circle-color": "#fff", "circle-pitch-alignment": "map", }, blue: { "circle-radius": 6, "circle-color": blue, "circle-pitch-alignment": "map", }, } as const satisfies Record; interface UserLocationPuckProps extends BaseProps { source: string; accuracy?: number; heading?: number; beforeId?: string; } export const UserLocationPuck = memo( ({ source, accuracy, heading }: UserLocationPuckProps) => { return ( <> {typeof accuracy === "number" && ( )} {typeof heading === "number" && ( )} ); }, );