import React, { createContext, useContext, ReactNode } from 'react'; import { usePek } from '../hooks/usePek'; interface PekContextType { // Location input - separate fields kanton: string; setKanton: (value: string) => void; gemeinde: string; setGemeinde: (value: string) => void; adresse: string; setAdresse: (value: string) => void; buildLocationString: () => string; // Legacy locationInput for backward compatibility locationInput: string; setLocationInput: (value: string) => void; useCurrentLocation: () => Promise; isGettingLocation: boolean; locationError: string | null; // Parcel search selectedParcel: any; searchParcel: (location: string, includeAdjacent?: boolean) => Promise; isSearchingParcel: boolean; parcelSearchError: string | null; // Map view mapCenter: any; mapZoomBounds: any; parcelGeometries: any[]; handleMapClick: (point: any) => Promise; handleParcelClick: (parcelId: string) => Promise; // Command processing commandInput: string; setCommandInput: (value: string) => void; processCommand: (userInput: string) => Promise; isProcessingCommand: boolean; commandResults: any[]; commandError: string | null; // Project management currentProjekt: any; createProjekt: (data: any) => Promise; isCreatingProjekt: boolean; addParcelToProjekt: (projektId: string, data: any) => Promise; isAddingParcel: boolean; projektError: string | null; // Panel state isPanelOpen: boolean; setIsPanelOpen: (open: boolean) => void; } const PekContext = createContext(undefined); export const PekProvider: React.FC<{ children: ReactNode }> = ({ children }) => { const pekData = usePek(); return ( {children} ); }; export const usePekContext = (): PekContextType => { const context = useContext(PekContext); if (!context) { throw new Error('usePekContext must be used within a PekProvider'); } return context; };