Files
beoanswer_react/src/FormContext.jsx

58 lines
1.4 KiB
JavaScript

// ========================================
// 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>
)
}
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
}