diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-04-06 23:27:23 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-04-06 23:42:05 +0200 |
| commit | 9bdc49ddf0492177f34bdfe92c9aa8b7999f8cf8 (patch) | |
| tree | 3f79976804d7fcf870ce5528ad58af3804683903 /src/components/atoms/forms/toggle.stories.tsx | |
| parent | 51889773b12c576dc199fc84d0188f822ac7baae (diff) | |
chore: add a Toggle component
Diffstat (limited to 'src/components/atoms/forms/toggle.stories.tsx')
| -rw-r--r-- | src/components/atoms/forms/toggle.stories.tsx | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/components/atoms/forms/toggle.stories.tsx b/src/components/atoms/forms/toggle.stories.tsx new file mode 100644 index 0000000..6e7323b --- /dev/null +++ b/src/components/atoms/forms/toggle.stories.tsx @@ -0,0 +1,90 @@ +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { useState } from 'react'; +import ToggleComponent from './toggle'; + +export default { + title: 'Atoms/Forms', + component: ToggleComponent, + argTypes: { + choices: { + description: 'The toggle choices.', + type: { + name: 'object', + required: true, + value: {}, + }, + }, + id: { + control: { + type: 'text', + }, + description: 'The input id.', + type: { + name: 'string', + required: true, + }, + }, + label: { + control: { + type: 'text', + }, + description: 'The toggle label.', + type: { + name: 'string', + required: true, + }, + }, + name: { + control: { + type: 'text', + }, + description: 'The input name.', + type: { + name: 'string', + required: true, + }, + }, + setValue: { + control: { + type: null, + }, + description: 'A callback function to update the toggle value.', + type: { + name: 'function', + required: true, + }, + }, + value: { + control: { + type: null, + }, + description: 'The toggle value. True if checked.', + type: { + name: 'boolean', + required: true, + }, + }, + }, +} as ComponentMeta<typeof ToggleComponent>; + +const Template: ComponentStory<typeof ToggleComponent> = ({ + value: _value, + setValue: _setValue, + ...args +}) => { + const [isChecked, setIsChecked] = useState<boolean>(false); + return ( + <ToggleComponent value={isChecked} setValue={setIsChecked} {...args} /> + ); +}; + +export const Toggle = Template.bind({}); +Toggle.args = { + choices: { + left: 'On', + right: 'Off', + }, + id: 'toggle-example', + label: 'Activate setting:', + name: 'toggle-example', +}; |
