Gängige Praxis: *Slice.js Verwendung: Wenn du Redux Toolkit und createSlice nutzt, ist der Postfix Slice gängiger. Begründung: createSlice ist ein Begriff aus Redux Toolkit. Der Name vermittelt, dass die Datei nicht nur den Reducer enthält, sondern auch Aktionen und den initialen Zustand. Häufig in modernen Projekten verwendet.
27 lines
693 B
JavaScript
27 lines
693 B
JavaScript
// hooks/useMarkerLayers.js
|
|
import { useEffect } from "react";
|
|
import { useRecoilValue } from "recoil";
|
|
import { mapLayersState } from "../redux/slices/mapLayersSlice";
|
|
|
|
const useMarkerLayers = (map, markers, layerType) => {
|
|
const mapLayersVisibility = useRecoilValue(mapLayersState);
|
|
|
|
useEffect(() => {
|
|
if (!map || !markers) return;
|
|
|
|
const toggleLayer = (isVisible) => {
|
|
markers.forEach((marker) => {
|
|
if (isVisible) {
|
|
marker.addTo(map);
|
|
} else {
|
|
map.removeLayer(marker);
|
|
}
|
|
});
|
|
};
|
|
|
|
toggleLayer(mapLayersVisibility[layerType]);
|
|
}, [map, markers, mapLayersVisibility, layerType]);
|
|
};
|
|
|
|
export default useMarkerLayers;
|