// components/DataSheet.js import React, { useEffect, useState } from "react"; import { useRecoilValue, useRecoilState } from "recoil"; import { gisStationsStaticDistrictState } from "../states/gisStationState"; import { gisSystemStaticState } from "../states/gisSystemState"; import { mapLayersState } from "../states/mapLayersState"; function DataSheet() { const [layers, setLayers] = useRecoilState(mapLayersState); const [uniqueAreas, setUniqueAreas] = useState([]); const [uniqueSystems, setUniqueSystems] = useState([]); const [stationListing, setStationListing] = useState([]); const [systemListing, setSystemListing] = useState([]); const GisStationsStaticDistrict = useRecoilValue( gisStationsStaticDistrictState ); const GisSystemStatic = useRecoilValue(gisSystemStaticState); useEffect(() => { const seenNames = new Set(); const filteredAreas = GisStationsStaticDistrict.filter((item) => { const isUnique = !seenNames.has(item.Area_Name); if (isUnique) { seenNames.add(item.Area_Name); } return isUnique; }); setUniqueAreas(filteredAreas); const seenSystemNames = new Set(); const filteredSystems = GisSystemStatic.filter((item) => { const isUnique = !seenSystemNames.has(item.Name); if (isUnique) { seenSystemNames.add(item.Name); } return isUnique; }); setUniqueSystems(filteredSystems); const newStationListing = filteredAreas .map((area, index) => ({ id: index + 1, name: area.Area_Name })) .sort((a, b) => a.name.localeCompare(b.name)); setStationListing(newStationListing); const newSystemListing = filteredSystems.map((system, index) => ({ id: index + 1, name: system.Name.replace(/[^a-zA-Z0-9]/g, ""), // Ersetzen von Sonderzeichen displayName: system.Name, // Beibehalten des originalen Namens für die Anzeige })); setSystemListing(newSystemListing); console.log("Station Listing:", newStationListing); console.log("System Listing:", newSystemListing); }, [GisStationsStaticDistrict, GisSystemStatic]); const handleCheckboxChange = (layerKey) => { console.log( `Ändern der Sichtbarkeit für: ${layerKey}, aktueller Wert: ${layers[layerKey]}` ); setLayers((prevLayers) => { const newLayers = { ...prevLayers, [layerKey]: !prevLayers[layerKey], }; console.log(`Neuer Wert für ${layerKey}: ${newLayers[layerKey]}`); return newLayers; }); }; const handleStationChange = (event) => { console.log("Ausgewählte Station:", event.target.value); }; const resetView = () => { console.log("Ansicht wird zurückgesetzt."); }; return (
Expand
{systemListing.map((station) => (
handleCheckboxChange(`show_${station.name}`)} />
))}
); } export default DataSheet;