docs/_snippets/list-story-reuse-data.md
import { type Meta, type StoryObj, moduleMetadata } 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> = {
component: List,
decorators: [
moduleMetadata({
declarations: [List, ListItem],
imports: [CommonModule],
}),
],
};
export default meta;
type Story = StoryObj<List>;
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>
`,
}),
};
import { CommonModule } from '@angular/common';
import { moduleMetadata } from '@storybook/angular';
import preview from '../.storybook/preview';
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 = preview.meta({
component: List,
decorators: [
moduleMetadata({
declarations: [List, ListItem],
imports: [CommonModule],
}),
],
});
export const ManyItems = meta.story({
args: {
Selected: Selected.input.args.isSelected,
Unselected: Unselected.input.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>
`,
}),
});
import { createList } from './List';
import { createListItem } from './ListItem';
// ๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
export default {
title: 'List',
};
export const ManyItems = {
render: (args) => {
const list = createList(args);
list.appendChild(createListItem(Selected.args));
list.appendChild(createListItem(Unselected.args));
list.appendChild(createListItem(Unselected.args));
return list;
},
};
import type { Meta, StoryObj } from '@storybook/html';
import { createList, ListArgs } from './List';
import { createListItem } from './ListItem';
// ๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta: Meta<ListArgs> = {
title: 'List',
};
export default meta;
type Story = StoryObj<ListArgs>;
export const ManyItems: Story = {
render: (args) => {
const list = createList(args);
list.appendChild(createListItem(Selected.args));
list.appendChild(createListItem(Unselected.args));
list.appendChild(createListItem(Unselected.args));
return list;
},
};
import * as React from 'react';
import { List } from './List';
import { ListItem } from './ListItem';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
export default {
component: List,
};
export const ManyItems = {
render: (args) => (
<List {...args}>
<ListItem {...Selected.args} />
<ListItem {...Unselected.args} />
<ListItem {...Unselected.args} />
</List>
),
};
import * as React from 'react';
// Replace your-framework with the framework you are using, e.g. react-vite, nextjs, nextjs-vite, etc.
import type { Meta, StoryObj } from '@storybook/your-framework';
import { List } from './List';
import { ListItem } from './ListItem';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta = {
component: List,
} satisfies Meta<typeof List>;
export default meta;
type Story = StoryObj<typeof meta>;
export const ManyItems: Story = {
render: (args) => (
<List {...args}>
<ListItem {...Selected.args} />
<ListItem {...Unselected.args} />
<ListItem {...Unselected.args} />
</List>
),
};
import { List } from './List';
import { ListItem } from './ListItem';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
export default {
component: List,
};
export const ManyItems = {
render: (args) => (
<List {...args}>
<ListItem {...Selected.args} />
<ListItem {...Unselected.args} />
<ListItem {...Unselected.args} />
</List>
),
};
import type { Meta, StoryObj } from 'storybook-solidjs-vite';
import { List } from './List';
import { ListItem } from './ListItem';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta = {
component: List,
} satisfies Meta<typeof List>;
export default meta;
type Story = StoryObj<typeof meta>;
export const ManyItems: Story = {
render: (args) => (
<List {...args}>
<ListItem {...Selected.args} />
<ListItem {...Unselected.args} />
<ListItem {...Unselected.args} />
</List>
),
};
<script module>
import { defineMeta } from '@storybook/addon-svelte-csf';
import List from './List.svelte';
import ListItem from './ListItem.svelte';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories.svelte';
const { Story } = defineMeta({
component: List,
});
</script>
<Story name="Many Items">
{#snippet children(args)}
<List {...args}>
<ListItem {...Selected.args} />
<ListItem {...Unselected.args} />
<ListItem {...Unselected.args} />
</List>
{/snippet}
</Story>
<script module>
import { defineMeta } from '@storybook/addon-svelte-csf';
import List from './List.svelte';
import ListItem from './ListItem.svelte';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories.svelte';
const { Story } = defineMeta({
component: List,
});
</script>
<Story name="Many Items">
{#snippet children(args)}
<List {...args}>
<ListItem {...Selected.args} />
<ListItem {...Unselected.args} />
<ListItem {...Unselected.args} />
</List>
{/snippet}
</Story>
import List from './ListComponent.vue';
import ListItem from './ListItem.vue';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
export default {
component: List,
};
export const ManyItems = {
render: (args) => ({
components: { List, ListItem },
setup() {
return { ...args };
},
template: `
<List v-bind="args">
<list-item :isSelected="Selected"/>
<list-item :isSelected="Unselected"/>
<list-item :isSelected="Unselected"/>
</List>`,
}),
args: {
Selected: Selected.args.isSelected,
Unselected: Unselected.args.isSelected,
},
};
import type { Meta, StoryObj } from '@storybook/vue3-vite';
import List from './ListComponent.vue';
import ListItem from './ListItem.vue';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta = {
component: List,
} satisfies Meta<typeof List>;
export default meta;
type Story = StoryObj<typeof meta>;
export const ManyItems: Story = {
render: (args) => ({
components: { List, ListItem },
setup() {
return { ...args };
},
template: `
<List v-bind="args">
<list-item :isSelected="Selected"/>
<list-item :isSelected="Unselected"/>
<list-item :isSelected="Unselected"/>
</List>`,
}),
args: {
Selected: Selected.args.isSelected,
Unselected: Unselected.args.isSelected,
},
};
import preview from '../.storybook/preview';
import List from './ListComponent.vue';
import ListItem from './ListItem.vue';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta = preview.meta({
component: List,
});
export const ManyItems = meta.story({
render: (args) => ({
components: { List, ListItem },
setup() {
return { ...args };
},
template: `
<List v-bind="args">
<list-item :isSelected="Selected"/>
<list-item :isSelected="Unselected"/>
<list-item :isSelected="Unselected"/>
</List>`,
}),
args: {
Selected: Selected.input.args.isSelected,
Unselected: Unselected.input.args.isSelected,
},
});
import preview from '../.storybook/preview';
import List from './ListComponent.vue';
import ListItem from './ListItem.vue';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta = preview.meta({
component: List,
});
export const ManyItems = meta.story({
render: (args) => ({
components: { List, ListItem },
setup() {
return { ...args };
},
template: `
<List v-bind="args">
<list-item :isSelected="Selected"/>
<list-item :isSelected="Unselected"/>
<list-item :isSelected="Unselected"/>
</List>`,
}),
args: {
Selected: Selected.input.args.isSelected,
Unselected: Unselected.input.args.isSelected,
},
});
import * as React from 'react';
import preview from '../.storybook/preview';
import { List } from './List';
import { ListItem } from './ListItem';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta = preview.meta({
component: List,
});
export const ManyItems = meta.story({
render: (args) => (
<List {...args}>
<ListItem {...Selected.input.args} />
<ListItem {...Unselected.input.args} />
<ListItem {...Unselected.input.args} />
</List>
),
});
import * as React from 'react';
import preview from '../.storybook/preview';
import { List } from './List';
import { ListItem } from './ListItem';
//๐ We're importing the necessary stories from ListItem
import { Selected, Unselected } from './ListItem.stories';
const meta = preview.meta({
component: List,
});
export const ManyItems = meta.story({
render: (args) => (
<List {...args}>
<ListItem {...Selected.input.args} />
<ListItem {...Unselected.input.args} />
<ListItem {...Unselected.input.args} />
</List>
),
});