diff --git a/src/stories/icons.stories.js b/src/stories/icons.stories.js index ee3a97fd..81c44de4 100644 --- a/src/stories/icons.stories.js +++ b/src/stories/icons.stories.js @@ -7,10 +7,23 @@ import Box from 'components/base/Box' const stories = storiesOf('Common', module) const req = require.context('../icons', true, /.js$/) -const icons = req.keys().map(file => ({ - file, - Component: req(file).default, -})) +const icons = req + .keys() + .map(file => { + const filePath = file + .split('/') + .slice(1) + .join('/') + let iconName = file.split('/') + iconName = iconName[iconName.length - 1] + return { + filePath: filePath.split('.js')[0], + iconName: iconName.split('.js')[0], + Component: req(file).default, + } + }) + .filter(i => i.Component) + .sort((a, b) => a.iconName > b.iconName) const IconWrapper = styled(Box).attrs({ align: 'center', @@ -30,15 +43,14 @@ const Wrapper = styled.div` const doubleClickMap = {} -function copy(iconName) { +function copy(filePath, iconName) { return () => { const now = Date.now() const isDoubleClick = iconName in doubleClickMap && now - doubleClickMap[iconName] < 250 doubleClickMap[iconName] = now const fakeNode = document.createElement('textarea') - fakeNode.value = isDoubleClick ? `import Icon${iconName} from 'icons/${iconName}'` : iconName + fakeNode.value = isDoubleClick ? `import Icon${iconName} from 'icons/${filePath}'` : iconName document.body.appendChild(fakeNode) - fakeNode.focus() fakeNode.select() document.execCommand('copy') document.body.removeChild(fakeNode) @@ -47,14 +59,11 @@ function copy(iconName) { stories.add('Icons', () => ( - {icons.map(({ file, Component }) => { - const iconName = file.match(/\.\/(.*)\./)[1] - return ( - -
{iconName}
- -
- ) - })} + {icons.map(({ iconName, filePath, Component }) => ( + +
{iconName}
+ +
+ ))}
))