storybook/docs/snippets/angular/list-story-reuse-data.ts.mdx
2022-11-17 16:33:22 +01:00

56 lines
1.4 KiB
Plaintext

```ts
// List.stories.ts
import { moduleMetadata } from '@storybook/angular';
import type { Meta, StoryObj } from '@storybook/angular';
import { CommonModule } from '@angular/common';
import { List } from './list.component';
import { ListItem } from './list-item.component';
//👇 We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta: Meta<List> = {
/* 👇 The title prop is optional.
* See https://storybook.js.org/docs/7.0/angular/configure/overview#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'List',
component: List,
decorators: [
moduleMetadata({
declarations: [List, ListItem],
imports: [CommonModule],
}),
],
};
export default meta;
type Story = StoryObj<List>;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
* See https://storybook.js.org/docs/7.0/angular/api/csf
* to learn how to use render functions.
*/
export const ManyItems: Story = {
args: {
Selected: Selected.args.isSelected,
Unselected: Unselected.args.isSelected,
},
render: (args) => ({
props: args,
template: `
<app-list>
<app-list-item [isSelected]="Selected"></app-list-item>
<app-list-item [isSelected]="Unselected"></app-list-item>
<app-list-item [isSelected]="Unselected"></app-list-item>
</app-list>
`,
}),
};
```