Fix Map.tsx types, auth flow, Docker legacy-peer-deps
This commit is contained in:
@@ -54,8 +54,10 @@ export function CruisingMap({ vanillaMode, onActiveCountChange }: MapProps) {
|
||||
const [showFilters, setShowFilters] = useState(false);
|
||||
const [showSidebar, setShowSidebar] = useState(true);
|
||||
const [leafletReady, setLeafletReady] = useState(false);
|
||||
const [userIcon, setUserIcon] = useState<unknown>(null);
|
||||
const [spotIcon, setSpotIcon] = useState<unknown>(null);
|
||||
const [iconFactory, setIconFactory] = useState<{
|
||||
createUser: (position: string | null, status: string) => import("leaflet").DivIcon;
|
||||
createSpot: (category: string) => import("leaflet").DivIcon;
|
||||
} | null>(null);
|
||||
|
||||
const [filters, setFilters] = useState<MapFilters>({
|
||||
ageMin: 18,
|
||||
@@ -105,8 +107,10 @@ export function CruisingMap({ vanillaMode, onActiveCountChange }: MapProps) {
|
||||
});
|
||||
};
|
||||
|
||||
setUserIcon({ create: createUserIcon });
|
||||
setSpotIcon({ create: createSpotIcon });
|
||||
setIconFactory({
|
||||
createUser: createUserIcon,
|
||||
createSpot: createSpotIcon,
|
||||
});
|
||||
setLeafletReady(true);
|
||||
});
|
||||
}, []);
|
||||
@@ -277,7 +281,7 @@ export function CruisingMap({ vanillaMode, onActiveCountChange }: MapProps) {
|
||||
)}
|
||||
|
||||
{/* Map */}
|
||||
{leafletReady && userIcon && spotIcon && (
|
||||
{leafletReady && iconFactory && (
|
||||
<MapContainer
|
||||
center={[DEFAULT_LAT, DEFAULT_LNG]}
|
||||
zoom={14}
|
||||
@@ -294,7 +298,7 @@ export function CruisingMap({ vanillaMode, onActiveCountChange }: MapProps) {
|
||||
<Marker
|
||||
key={p.id}
|
||||
position={[p.lat, p.lng]}
|
||||
icon={(userIcon as { create: (pos: string | null, status: string) => unknown }).create(p.position, p.status)}
|
||||
icon={iconFactory.createUser(p.position, p.status)}
|
||||
eventHandlers={{
|
||||
click: () => setSelectedProfile(p),
|
||||
}}
|
||||
@@ -329,7 +333,7 @@ export function CruisingMap({ vanillaMode, onActiveCountChange }: MapProps) {
|
||||
<Marker
|
||||
key={s.id}
|
||||
position={[s.lat, s.lng]}
|
||||
icon={(spotIcon as { create: (cat: string) => unknown }).create(s.category)}
|
||||
icon={iconFactory.createSpot(s.category)}
|
||||
>
|
||||
<Popup>
|
||||
<div className="text-sm">
|
||||
|
||||
Reference in New Issue
Block a user