import type { Meta, StoryObj } from '@storybook/react'; import React, { useState } from 'react'; import { OptionGroup } from '../OptionGroup'; import { SnapshotContainer } from '../../../test-utils/SnapshotsContainer'; const meta: Meta = { title: 'Form/OptionGroup', args: { name: 'optionGroupField', options: [ { value: 'daily', label: 'Daily' }, { value: 'weekly', label: 'Weekly' }, { value: 'yearly', label: 'Yearly' }, ], }, component: OptionGroup, }; export default meta; type Story = StoryObj; export const Default: Story = { render: (args) => { const [selectedValue, setSelectedValue] = useState('weekly'); return (
{ setSelectedValue(event.target.value); }} />
); }, }; export const WithBooleanValues: Story = { args: { options: [ { value: true, label: 'Yes' }, { value: false, label: 'No' }, ], }, render: (args) => { const [selectedValue, setSelectedValue] = useState(null); return (
{ setSelectedValue(event.target.value === 'true'); }} />
); }, }; export const Disabled: Story = { args: { isDisabled: true, }, render: (args) => { const [selectedValue, setSelectedValue] = useState('yearly'); return (
{ setSelectedValue(event.target.value); }} />
); }, }; export const InADisabledFieldset: Story = { render: (args) => { const [selectedValue, setSelectedValue] = useState('yearly'); return (
{ setSelectedValue(event.target.value); }} />
); }, }; export const InvalidAndEmpty: Story = { render: (args) => { const [selectedValue, setSelectedValue] = useState(null); return (
{ setSelectedValue(event.target.value); }} />
); }, }; export const InvalidChoice: Story = { args: { isInvalid: true, }, render: (args) => { const [selectedValue, setSelectedValue] = useState('weekly'); return (
{ setSelectedValue(event.target.value); }} />
); }, }; export const WithIcons: Story = { render: (args) => { const [selectedValue, setSelectedValue] = useState('weekly'); return (
{ setSelectedValue(event.target.value); }} />
); }, }; export const Snapshot: Story = { parameters: { chromatic: { disableSnapshot: false }, }, render: () => ( ), };