import React from 'react' import { Grid, StepAvatar } from '../' import { HIDE_STYLED, Story, STRING } from '../helpers/storybook' const StepManager = (props: { children: (state: { currentStep: number; setStep: (step: number) => void }) => React.ReactNode }): React.ReactElement => { const [currentStep, setStep] = React.useState(2) return <>{props.children({ currentStep, setStep })} } export default { title: 'StepAvatar', component: StepAvatar, argTypes: { ...HIDE_STYLED, }, parameters: { controls: { disable: true } }, } as const export const BasicUsage: Story = (args) => BasicUsage.argTypes = { status: { name: 'current step', options: ['notDone', 'inProcess', 'done'] }, children: { name: 'step number', ...STRING }, } BasicUsage.args = { status: 'inProcess', children: '#' } BasicUsage.parameters = { controls: { disable: false } } export const BasicExampleHorizontal = (): React.ReactElement => { return ( 1 2 3 4 ) } export const BasicExampleVertical = (): React.ReactElement => { return ( 1 2 3 4 ) } export const InteractiveExample = (): React.ReactElement => { function getType(currentStep: number, step: number): 'notDone' | 'inProcess' | 'done' { if (currentStep < step) { return 'notDone' } else if (currentStep === step) { return 'inProcess' } else { return 'done' } } return ( {({ currentStep, setStep }): React.ReactElement => ( setStep(1)} status={getType(currentStep, 1)} > 1 setStep(2)} status={getType(currentStep, 2)} > 2 setStep(3)} status={getType(currentStep, 3)} > 3 setStep(4)} status={getType(currentStep, 4)} > 4 )} ) }