mirror of
https://github.com/tomru/pfadi-bussle.git
synced 2026-03-03 14:37:13 +01:00
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import React, { useContext } from 'react'
|
|
import Contact from './contact'
|
|
import BookProvider, { BookContext } from '../../context/book'
|
|
import DateSelect from './dateSelect'
|
|
import Reason from './reason'
|
|
import Button from '../button'
|
|
|
|
function BookForm() {
|
|
const { onSubmit, state, forgetData } = useContext(BookContext)
|
|
const { postData, postDataError, dataStoredLoaded } = state
|
|
|
|
return (
|
|
<>
|
|
<form
|
|
className="w-full"
|
|
onSubmit={(event) => {
|
|
event.preventDefault()
|
|
onSubmit()
|
|
}}
|
|
>
|
|
<DateSelect />
|
|
<Reason />
|
|
{dataStoredLoaded && (
|
|
<p className="mb-6 info-message">
|
|
Buchungsdaten wurden aus Deinem Browser geladen und vorausgefüllt.
|
|
<a
|
|
className="ml-3 font-medium text-blue-400 underline cursor-pointer hover:text-blue-600"
|
|
onClick={forgetData}
|
|
>
|
|
Daten wieder vergessen
|
|
</a>
|
|
</p>
|
|
)}
|
|
<Contact />
|
|
<div className="flex items-end">
|
|
<Button type="submit" loading={!!postData} disabled={postData}>
|
|
{postData ? 'Speichern...' : 'Absenden'}
|
|
</Button>
|
|
{postDataError && (
|
|
<div className="error-message flex-grow">{postDataError}</div>
|
|
)}
|
|
</div>
|
|
</form>
|
|
</>
|
|
)
|
|
}
|
|
|
|
export default function Book() {
|
|
return (
|
|
<BookProvider>
|
|
<BookForm />
|
|
</BookProvider>
|
|
)
|
|
} |