import { DivIcon } from "leaflet";
import { MapPinIcon } from "lucide-react";
import { useMemo } from "react";
import ReactDOMServer from "react-dom/server";
import { TileLayer } from "react-leaflet";
import { useAuth } from "@/contexts/AuthContext";
import { resolveTheme } from "@/utils/theme";
const TILE_URLS = {
light: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
dark: "https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",
} as const;
export const ThemedTileLayer = () => {
const { userGeneralSetting } = useAuth();
const isDark = useMemo(() => resolveTheme(userGeneralSetting?.theme || "system").includes("dark"), [userGeneralSetting?.theme]);
return ;
};
interface MarkerIconOptions {
fill?: string;
size?: number;
className?: string;
}
export const createMarkerIcon = (options?: MarkerIconOptions): DivIcon => {
const { fill = "orange", size = 28, className = "" } = options || {};
return new DivIcon({
className: "relative border-none",
html: ReactDOMServer.renderToString(
,
),
});
};
export const defaultMarkerIcon = createMarkerIcon();