import React, { useState } from 'react'; import { Props, Toggle, } from '../../src/lib/components/toggle/Toggle.component'; import { useArgs } from 'storybook/preview-api'; import { Meta, StoryObj } from '@storybook/react-webpack5'; type Story = StoryObj; const meta: Meta = { title: 'Components/Inputs/Toggle', component: Toggle, args: { name: 'toggle', }, }; export default meta; export const Playground: Story = { render: (args) => { const [{ toggle }, updateArgs] = useArgs<{ toggle: boolean }>(); return ( updateArgs({ toggle: !toggle })} toggle={toggle} /> ); }, args: { label: 'Playground', }, }; export const LabelledToggle: Story = { render: (args) => { const [toggle, setToggle] = useState(false); return ( setToggle(!toggle)} /> ); }, args: { label: 'Airplane mode', }, }; export const FeatureToggle: Story = { render: (args) => { const [toggle, setToggle] = useState(false); return ( setToggle(!toggle)} /> ); }, args: { label: 'List versions', }, }; export const AmbiguousLabel: Story = { render: () => { const [toggle, setToggle] = useState(false); return ( setToggle(!toggle)} /> ); }, }; export const LabelLeftToggleRight: Story = { render: () => { const [toggle, setToggle] = useState(false); return (
Enable object lock setToggle(!toggle)} />
); }, }; export const LabelRightToggleLeft: Story = { render: () => { const [toggle, setToggle] = useState(false); return ( setToggle(!toggle)} /> ); }, }; export const AllStates: Story = { render: () => { const labelStyle: React.CSSProperties = { fontSize: '0.75rem', textTransform: 'uppercase', letterSpacing: '0.05em', opacity: 0.5, marginBottom: '0.75rem', }; return (
Off
{}} />
On
{}} />
Disabled
{}} />
Disabled on
{}} />
); }, }; export const DisabledToggle: Story = { ...Playground, args: { label: 'Disabled Toggle', disabled: true, toggle: false, }, };