Playground
Verwende <DateRangePicker />
, um einen DateRangePicker darzustellen. Nutze ein <Label />
, um Informationen zu vermitteln, die das Verständnis der Eingabeanforderungen erleichtern.
Die Values des DateRangePickers sind Objekte aus dem @internationalized/date Package.
import { DateRangePicker, Label, } from "@mittwald/flow-react-components"; <DateRangePicker> <Label>Zeitraum</Label> </DateRangePicker>
Min- und Max-Values
Der auswählbare Datumsbereich lässt sich über minValue
und maxValue
begrenzen.
import { DateRangePicker, Label, } from "@mittwald/flow-react-components"; import { getLocalTimeZone, today, } from "@internationalized/date"; <DateRangePicker minValue={today(getLocalTimeZone())}> <Label>Zeitraum</Label> </DateRangePicker>
Disabled
Ist der DateRangePicker disabled, ist keine Interaktion möglich.
import { DateRangePicker, Label, } from "@mittwald/flow-react-components"; <DateRangePicker isDisabled> <Label>Zeitraum</Label> </DateRangePicker>
Mit FieldDescription
Um wichtige Hinweise zum DateRangePicker bereitzustellen, kann unterhalb eine <FieldDescription />
eingebaut werden.
import { DateRangePicker, FieldDescription, Label, } from "@mittwald/flow-react-components"; <DateRangePicker> <Label>Zeitraum</Label> <FieldDescription>Weitere Informationen</FieldDescription> </DateRangePicker>
Kombiniere mit ...
ContextualHelp
Benutze das ContextualHelp, wenn zusätzliche Informationen bereitgestellt werden sollen, die zu umfangreich für die FieldDescription sind.
import { Button, ContextualHelp, ContextualHelpTrigger, DateRangePicker, Heading, Label, Text, } from "@mittwald/flow-react-components"; <DateRangePicker> <Label> Zeitraum <ContextualHelpTrigger> <Button /> <ContextualHelp> <Heading>Weitere Informationen</Heading> <Text> Hier gibt es weitere Informationen, die zu lang für die FieldDescription sind. </Text> </ContextualHelp> </ContextualHelpTrigger> </Label> </DateRangePicker>
React Hook Form
Weitere Details zur Formularlogik und -validierung sind in der Component Form (React Hook Form) zu finden.
import { Button, DateRangePicker, Label, Section, } from "@mittwald/flow-react-components"; import { useForm } from "react-hook-form"; import { Form, typedField, } from "@mittwald/flow-react-components/react-hook-form"; import type { CalendarDate } from "@internationalized/date"; import { sleep } from "@/content/03-components/actions/action/examples/lib"; export default () => { const form = useForm<{ range: { start: CalendarDate; end: CalendarDate }; }>(); const Field = typedField(form); return ( <Section> <Form form={form} onSubmit={sleep}> <Field name="range" rules={{ required: "Bitte wähle einen Zeitraum aus", }} > <DateRangePicker> <Label>Zeitraum</Label> </DateRangePicker> </Field> <Button type="submit">Speichern</Button> </Form> </Section> ); }