import React, { useContext } from 'react' import { Grid, IconButton, ScreenSizeContext, SIZES, Text } from '../' import { actions, HIDE_CONTROL, Icon, ICON_ARG, Story, STRING } from '../helpers/storybook' import { IconButtonVariants } from './IconButton' export default { title: 'IconButton', component: IconButton, argTypes: actions('onClick', 'onFocus', 'onBlur'), } as const type IBStory = Story< typeof IconButton, { Icon: Icon isTiny?: boolean } > const IconButtonBase: IBStory = ({ isTiny, Icon: IconComponent, ...args }) => { const variants = ['standard', 'action', 'danger', 'warning', 'success', 'dark'] const tinyFirstItem = isTiny ? 2 : 1 return ( <> {variants.map((variant, index) => ( ))} ) } export const BasicUsage: IBStory = (args) => { const size = useContext(ScreenSizeContext) const isTiny = size === SIZES.tiny return ( {!isTiny && ( Size )} Standard Action Danger Warning Success Dark {!isTiny && ( Tiny )} {!isTiny && ( Small )} {!isTiny && ( Medium )} {!isTiny && ( Large )} {!isTiny && ( Disabled )} ) } BasicUsage.argTypes = { Icon: ICON_ARG, iconSize: HIDE_CONTROL, variant: HIDE_CONTROL, disabled: HIDE_CONTROL, display: HIDE_CONTROL, } BasicUsage.args = { label: 'icb' } const icons = ICON_ARG.mapping export const AllIcons: Story = ({ label = 'icb', ...args }) => { return ( {Object.values(icons) .slice(0, Object.keys(icons).length - 2) .map((IconComponent, ix) => ( ))} ) } AllIcons.argTypes = { iconSize: STRING, label: STRING } AllIcons.args = { disabled: false }