import type { Meta, StoryObj } from '@storybook/nextjs' import { fn } from 'storybook/test' import { useState } from 'react' import DatePicker from './date-picker' import dayjs from './utils/dayjs' import { getDateWithTimezone } from './utils/dayjs' import type { DatePickerProps } from './types' const meta = { title: 'Base/Data Entry/DateAndTimePicker', component: DatePicker, parameters: { docs: { description: { component: 'Combined date and time picker with timezone support. Includes shortcuts for “now”, year-month navigation, and optional time selection.', }, }, }, tags: ['autodocs'], args: { value: getDateWithTimezone({}), timezone: dayjs.tz.guess(), needTimePicker: true, placeholder: 'Select schedule time', onChange: fn(), onClear: fn(), }, } satisfies Meta export default meta type Story = StoryObj const DatePickerPlayground = (props: DatePickerProps) => { const [value, setValue] = useState(props.value) return (
setValue(undefined)} />
Selected datetime: {value ? value.format() : 'undefined'}
) } export const Playground: Story = { render: args => , args: { ...meta.args, needTimePicker: false, placeholder: 'Select due date', }, parameters: { docs: { source: { language: 'tsx', code: ` const [value, setValue] = useState(getDateWithTimezone({})) setValue(undefined)} /> `.trim(), }, }, }, } export const DateOnly: Story = { render: args => ( ), args: { ...meta.args, needTimePicker: false, placeholder: 'Select due date', }, parameters: { docs: { source: { language: 'tsx', code: ` `.trim(), }, }, }, }