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 }