58 lines
1.4 KiB
JavaScript
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
|
|
}
|