import { useState } from 'react' import { Title, Text, Stack, Button, Group, Divider } from '@mantine/core' import { IconArrowsLeftRight, IconPlayerPlay, IconMapPin, IconAlertCircle } from '@tabler/icons-react' import SearchBar from '../SearchBar/SearchBar' import AnalysisOptions from '../AnalysisOptions/AnalysisOptions' import { LayerSelector } from '../LayerSelector/LayerSelector' import { useAnalysisFilters } from '../../hooks/useAnalysisFilters' import { useSingleAnalysis } from '../../hooks/useSingleAnalysis' import { useAdvancedAnalysis } from '../../hooks/useAdvancedAnalysis' import styles from './AnalysisPanel.module.css' import AdvancedAnalysisModal from "../AdvancedAnalysisModal/AdvancedAnalysisModal"; function AnalysisPanel({ selectedLocation, onAnalysisComplete, onLocationSelect, layersConfig, onLayersChange, analysisResult }) { const [compareOpened, setCompareOpened] = useState(false); const { filters, updateFilter } = useAnalysisFilters(); const { runAnalysis, isLoading: isSingleLoading, isError: isSingleError } = useSingleAnalysis(onAnalysisComplete); const { runComparison, comparisonData, setComparisonData, isLoading: isAdvancedLoading, isError: isAdvancedError, } = useAdvancedAnalysis(); const isLocationReady = selectedLocation && !selectedLocation.isSearch; const handleOpenCompare = () => { setComparisonData(null); setCompareOpened(true); }; return (
TerraEye
{isLocationReady ? ( Analysis Target: {selectedLocation.lat.toFixed(5)}, {selectedLocation.lng.toFixed(5)} ) : ( {selectedLocation?.isSearch ? "Now click on the map to place a pin." : "Search for a city or click on the map."} )}
{isSingleError && (
{isSingleError}
)}
{analysisResult && ( onLayersChange(prev => ({ ...prev, [key]: val }))} /> )}
setCompareOpened(false)} onRunCompare={(mA, mB) => runComparison(selectedLocation, filters, mA, mB)} isLoading={isAdvancedLoading} isError={isAdvancedError} results={comparisonData} />
); } export default AnalysisPanel