import type { Meta, StoryObj } from '@storybook/react'; import { within, userEvent } from 'storybook/test'; import React, { useState } from 'react'; import { SnapshotContainer } from '../../../test-utils/SnapshotsContainer'; import { FormField } from '../../FormField'; import { Button } from '../../Button'; import { Icon } from '../../Icon'; import { DatePicker } from '../DatePicker'; const meta: Meta = { title: 'Form/DatePicker', component: DatePicker, args: { fit: 'parent', }, parameters: { layout: 'centered', }, }; export default meta; type Story = StoryObj; export const Default: Story = { play: async ({ canvasElement }) => { const canvas = within(canvasElement); await userEvent.click( canvas.getByRole('button', { name: 'Open calendar' }), ); }, render: (args) => { const [date, setDate] = useState(); return (
); }, }; export const WithDefaultValue: Story = { play: Default.play, parameters: { chromatic: { disableSnapshot: false }, }, render: (args) => { const [date, setDate] = useState(new Date('2021-01-01')); return ( ); }, }; export const WithMinAndMaxDate: Story = { play: Default.play, parameters: { chromatic: { disableSnapshot: false }, }, render: (args) => { const [date, setDate] = useState(new Date(2021, 6, 15)); const minDate = new Date(2021, 6, 3); const maxDate = new Date(2021, 6, 20); return ( ); }, }; export const Disabled: Story = { args: { isDisabled: true, }, render: (args) => { const [date, setDate] = useState(new Date(2021, 6, 15)); return ( ); }, }; export const InADisabledFieldset: Story = { render: (args) => { const [date, setDate] = useState(new Date(2021, 6, 15)); return (
); }, }; export const Invalid: Story = { args: { isInvalid: true, }, render: (args) => { const [date, setDate] = useState(new Date(2021, 6, 15)); return ; }, }; export const InAnInvalidFormField: Story = { render: (args) => { const [date, setDate] = useState(new Date(2021, 6, 15)); return ( ); }, }; export const MagicGradient: Story = { args: { variant: 'magicGradient', fit: 'content', }, render: (args) => { const [date, setDate] = useState(new Date(2021, 6, 15)); return (
); }, }; export const WithLeftAddon: Story = { args: { fit: 'content', leftAddon: (
), }, render: (args) => { const [date, setDate] = useState(new Date(2021, 6, 15)); return (
); }, }; export const Snapshot: Story = { parameters: { chromatic: { disableSnapshot: false }, }, render: () => ( ), };