import { Meta, StoryFn } from "@storybook/react"; import React, { useState } from "react"; import * as Yup from "yup"; import { FormProvider, useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import { CunninghamProvider } from ":/components/Provider"; import { Button } from ":/components/Button"; import { DateRangePicker } from ":/components/Forms/DatePicker/DateRangePicker"; import { DatePicker } from ":/components/Forms/DatePicker/DatePicker"; import { onSubmit } from ":/components/Forms/Examples/ReactHookForm/reactHookFormUtils"; import { RhfDatePicker } from ":/components/Forms/DatePicker/stories-utils"; export default { title: "Components/Forms/DatePicker", component: DatePicker, } as Meta; const Template: StoryFn = (args) => ( ); export const Default = () => (
); export const Disabled = { render: Template, args: { disabled: true }, }; export const DefaultValue = { render: Template, args: { defaultValue: "2023-05-24T00:00:00.000+00:00" }, }; export const DisabledValue = { render: Template, args: { disabled: true, defaultValue: "2023-05-24T00:00:00.000+00:00" }, }; export const Error = { render: Template, args: { defaultValue: "2023-05-24T00:00:00.000+00:00", state: "error", text: "Something went wrong", }, }; export const Success = { render: Template, args: { defaultValue: "2023-05-24T00:00:00.000+00:00", state: "success", text: "Well done", }, }; export const MinMaxValue = { render: Template, args: { defaultValue: "2023-05-24T00:00:00.000+00:00", minValue: "2023-04-23T00:00:00.000+00:00", maxValue: "2023-06-23T00:00:00.000+00:00", }, }; export const InvalidValue = { render: Template, args: { defaultValue: "2023-02-24T00:00:00.000+00:00", minValue: "2023-04-23T00:00:00.000+00:00", maxValue: "2023-06-23T00:00:00.000+00:00", }, }; export const WithText = { render: Template, args: { defaultValue: "2023-05-24T00:00:00.000+00:00", text: "This is a text, you can display anything you want here like warnings, information or errors.", }, }; export const Fullwidth = { render: Template, args: { defaultValue: "2023-05-24T00:00:00.000+00:00", fullWidth: true, }, }; export const CustomLocale = () => (
); export const CunninghamLocale = () => (
); export const Controlled = () => { const [value, setValue] = useState("2023-04-25T12:00:00.000Z"); return (
Value: {value?.toString()}
{ setValue(e); }} />
); }; export const ReactHookForm = () => { const methods = useForm({ defaultValues: { date: "", }, resolver: yupResolver( Yup.object().shape({ date: Yup.string().required(), }), ), }); return (
); }; export const RangeDefault = () => { return (
); }; export const RangeDefaultValue = () => { return ( ); }; export const RangeControlled = () => { const [value, setValue] = useState<[string, string] | null>([ "2023-05-23T13:37:00.000+02:00", "2023-06-23T13:37:00.000+02:00", ]); return ( <>
Value: {value?.join(" ")}
setValue(e)} />
); }; export const RangeControlledFull = () => { const [value, setValue] = useState<[string, string] | null>([ "2023-05-23T13:37:00.000+02:00", "2023-06-23T13:37:00.000+02:00", ]); return ( <>
Value: {value?.join(" ")}
setValue(e)} fullWidth={true} />
); };