import React from 'react'; import { boolean, number, radios, withKnobs } from '@storybook/addon-knobs'; import { iconColors } from '../../util/global-props'; import { OptionsKnobRecord } from '../../util/knobs'; import { Icon, IconPropsType } from './icon.component'; import { iconLibrary } from './icon.library'; // const names: IconPropsType['name'][] = Object.keys(iconMap) as IconPropsType['name'][]; export default { title: 'GEENEE-UI/Icon', component: Icon, decorators: [ withKnobs ] }; const iconFrames: OptionsKnobRecord = { default: undefined, solid: 'solid', opacity: 'opacity', none: 'none' }; // const iconColors: OptionsKnobRecord = { // default: undefined, // none: 'none', // dark: 'dark', // grey: 'grey', // white: 'white', // key: 'key', // green: 'green', // red: 'red' // }; export const IconMap = () => { const { frame, color, size } = Icon.defaultProps || {}; const iconItem = (name: IconPropsType['name'], key: number) => (
, { range: true, min: 16, max: 56, step: 8 }) } frame={ radios('Frame', iconFrames, frame) } color={ radios('Color', iconColors, color) } solid={ boolean('Solid', false) } />
{ name }
); return (
{ Object.keys(iconLibrary).map((item) => ( <>

{ item }

{ Object.keys(iconLibrary[ item as keyof typeof iconLibrary ]).map((name, key) => iconItem(name as IconPropsType['name'], key)) } )) }
); };