// ========================================
// FormContext.jsx - Globaler State für alle Formulardaten
// ========================================
import { createContext, useContext, useState } from 'react'

const FormContext = createContext()

export function FormProvider({ children }) {

  const [formData, setFormData] = useState({
    stattgefunden: '',
    besucher: '',           // war: besucherAnzahl
    spendenArt: '',
    betrag: '',             // war: barspende  
    bemerkungen: '',
    neuesDatum: '',         // war: neuertermin
    abgesagt: '',           // für abgesagt/verschoben
    // Weitere Felder können hier hinzugefügt werden
  })

   const updateFormData = (field, value) => {
    setFormData(prev => {
      const newData = {
        ...prev,
        [field]: value
      }
      return newData
    })
  }

  const resetFormData = () => {

    setFormData({
      stattgefunden: '',
      besucher: '',
      spendenArt: '',
      betrag: '',
      bemerkungen: '',
      neuesDatum: '',
      abgesagt: ''
    })
  }

  return (
    <FormContext.Provider value={{ formData, updateFormData, resetFormData }}>
      {children}
    </FormContext.Provider>
  )
}

// eslint-disable-next-line react-refresh/only-export-components
export function useFormData() {
  const context = useContext(FormContext)
  if (!context) {
    throw new Error('useFormData muss innerhalb von FormProvider verwendet werden. Stelle sicher, dass deine Komponente von <FormProvider> umschlossen ist.')
  }
  return context
}
