'use client'; import { useEffect, useState, useRef } from 'react'; import { useMediaQuery } from 'react-responsive'; import Image from 'next/image'; import { updateAmpelkarteGWWP } from '@/redux/ampelkarteGWWPSlice'; import { updateResourcesGWWP } from '@/redux/resourcesGWWPSlice'; import { updateScreenshot } from '@/redux/screenshotSlice'; import { useAppSelector, useAppDispatch } from '@/redux/hooks'; import Collapsible from '@/app/components/collapsible'; import Footer from '@/app/components/footer'; import Warning from '@/app/components/warning'; import { TableAmpelkarteGWWP } from './table-ampelkarte-gwwp'; const textTemplates = { 0: [ `Die flächenspezifische Jahresenergie für eine thermische Grundwassernutzung mit ausgeglichener Jahresbilanz, wobei die im Winter zur Heizung entzogene Wärme im Sommer vollständig wieder zurückgegeben wird, abhängig von der bestehenden Grundwassertemperatur und einer minimalen Rückgabetemperatur von 5 °C und einer maximalen Rückgabetemperatur von 18 °C beträgt rund `, ' kWh/m²/a', ], 1: [ `Die flächenspezifische Jahresenergie für eine thermische Grundwassernutzung im Heiz- und Kühlbetrieb bei Normbetriebsstunden, abhängig von der bestehenden Grundwassertemperatur und einer minimalen Rückgabetemperatur von 5 °C und einer maximalen Rückgabetemperatur von 18 °C beträgt rund `, ' kWh/m²/a', ], 2: ['Der Grundwasserspiegel ist am Grundstück in einer Tiefe von rund ', ' m zu erwarten.'], 3: ['Das Grundwasser ist am Grundstück rund ', ' m mächtig.'], 4: ['Die hydraulische Leitfähigkeit (kf-Wert) beträgt am Grundstück rund ', ' m/s.'], 5: ['Die maximale Jahrestemperatur des Grundwassers (für das Jahr 2020) liegt bei ', ' °C.'], 6: ['Die mittlere Jahrestemperatur des Grundwassers (für das Jahr 2020) liegt bei ', ' °C.'], 7: ['Die minimale Jahrestemperatur des Grundwassers (für das Jahr 2020) liegt bei ', ' °C.'], 8: [ 'Die maximale Pumpleistung eines Brunnenpaars mit 50 m Abstand zwischen Entnahme- und Rückgabebrunnen beträgt rund ', ' l/s.', ], 9: [ 'Die maximale Volllast-Leistung eines Brunnenpaars mit 50 m Abstand zwischen Entnahme- und Rückgabebrunnen beträgt rund ', ' kW.', ], }; export default function Panel({ address }: { address: string[] }) { const dispatch = useAppDispatch(); const isMobile = useMediaQuery({ maxWidth: 640 }); const [opened, setOpened] = useState(true); const innerRef = useRef(null); const ampelkarte = useAppSelector((store) => store.ampelkarteGWWP.value); const resources = useAppSelector((store) => store.resourcesGWWP.value); const screenshot = useAppSelector((store) => store.screenshot.value); // initialize query handlers useEffect(() => { dispatch(updateAmpelkarteGWWP([])); dispatch(updateResourcesGWWP([])); dispatch(updateScreenshot('')); return () => { dispatch(updateAmpelkarteGWWP([])); dispatch(updateResourcesGWWP([])); dispatch(updateScreenshot('')); }; }, [dispatch, isMobile]); // format values const formatGWWP = (layerId: number, layerName: string, value: string) => { if (value !== 'NoData') { if ([5, 6, 7].includes(layerId)) { value = parseFloat(value).toFixed(1); } else if (layerId === 4) { value = parseFloat(value).toFixed(4); } else { value = parseFloat(value).toFixed(0); } } if (value === 'NoData') { return layerName + ': keine Daten'; } else { return (textTemplates as any)[layerId][0] + value + (textTemplates as any)[layerId][1]; } }; const handleClick = () => { setOpened(!opened); if (innerRef && innerRef.current) { innerRef.current.classList.toggle('hidden'); } }; const tableDataCSS = 'w-full break-words border-b border-solid border-gray-300'; return (
0 ? 'bottom-4' : '' } w-full md:w-1/3 xl:w-1/4 pl-8 md:pl-0`} >
Abfrageergebnis {opened ? '-' : '+'}
{screenshot ? Screenshot : null} {address && address.length > 0 ? (
{address[0]}

{address[1]} {address[3]}
) : (
Mit einem Klick in die Karte können Sie geothermische Daten abfragen.
)} {resources && resources.length > 0 ? ( {resources.slice(0, 2).map((result: any) => { return ( ); })} {resources.slice(2, 10).map((result: any) => { return ( ); })}
Ressourcen für vordefinierte Grundwassernutzung
{formatGWWP( result.layerId, result.layerName, result.feature.attributes['Classify.Pixel Value'] )}
Standortabhängige Parameter
{formatGWWP( result.layerId, result.layerName, result.feature.attributes['Classify.Pixel Value'] )}
) : null} {ampelkarte && ampelkarte.length > 0 ? : null}
); }