storybook/docs/snippets/angular/component-story-custom-args-icons.ts.mdx
2021-01-27 20:43:31 +00:00

38 lines
831 B
Plaintext

```ts
// YourComponent.stories.ts
import { Story, Meta } from '@storybook/angular/types-6-0';
import Icon from './icon.component';
import { IconA, IconB, IconC, IconD, IconE } from './icons';
// Maps the icons to a JSON serializable object to be safely used with the argTypes
const iconMap = { IconA, IconB, IconC, IconD, IconE };
export default {
title: 'My Story with Icons',
component: YourComponent,
argTypes: {
icon: {
control: {
type: 'select',
options: Object.keys(iconMap),
},
},
},
} as Meta;
const Template: Story<Icon> = (args: Icon) => {
// retrieves the appropriate icon passes it as a component prop
const { icon } = args;
const selectedIcon = iconMap[icon];
return {
component: Icon,
props: {
...args,
icon:selectedIcon
},
};
};
```