aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/organisms/widgets/links-list-widget.stories.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-04-15 16:32:55 +0200
committerArmand Philippot <git@armandphilippot.com>2022-04-15 17:40:33 +0200
commitd9bf6f0d69ecb4475c06c772ef6314e5a7ee0fe8 (patch)
treea5b962a7f41db1d1d951fab5d1f1557edef756f1 /src/components/organisms/widgets/links-list-widget.stories.tsx
parent6ec16bc15cc78e62cb94e131699625fa5363437c (diff)
chore: add a LinksListWidget component
Diffstat (limited to 'src/components/organisms/widgets/links-list-widget.stories.tsx')
-rw-r--r--src/components/organisms/widgets/links-list-widget.stories.tsx92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/components/organisms/widgets/links-list-widget.stories.tsx b/src/components/organisms/widgets/links-list-widget.stories.tsx
new file mode 100644
index 0000000..528f6f7
--- /dev/null
+++ b/src/components/organisms/widgets/links-list-widget.stories.tsx
@@ -0,0 +1,92 @@
+import { ComponentMeta, ComponentStory } from '@storybook/react';
+import { IntlProvider } from 'react-intl';
+import LinksListWidget from './links-list-widget';
+
+export default {
+ title: 'Organisms/Widgets',
+ component: LinksListWidget,
+ args: {
+ kind: 'unordered',
+ },
+ argTypes: {
+ items: {
+ description: 'The widget data.',
+ type: {
+ name: 'object',
+ required: true,
+ value: {},
+ },
+ },
+ kind: {
+ control: {
+ type: 'select',
+ },
+ description: 'The list kind: either ordered or unordered.',
+ options: ['ordered', 'unordered'],
+ table: {
+ category: 'Options',
+ defaultValue: { summary: 'unordered' },
+ },
+ type: {
+ name: 'string',
+ required: false,
+ },
+ },
+ level: {
+ control: {
+ type: 'number',
+ },
+ description: 'The heading level.',
+ type: {
+ name: 'number',
+ required: true,
+ },
+ },
+ title: {
+ control: {
+ type: 'text',
+ },
+ description: 'The widget title.',
+ type: {
+ name: 'string',
+ required: true,
+ },
+ },
+ },
+} as ComponentMeta<typeof LinksListWidget>;
+
+const Template: ComponentStory<typeof LinksListWidget> = (args) => (
+ <IntlProvider locale="en">
+ <LinksListWidget {...args} />
+ </IntlProvider>
+);
+
+const items = [
+ { name: 'Level 1: Item 1', url: '#' },
+ {
+ name: 'Level 1: Item 2',
+ url: '#',
+ child: [
+ { name: 'Level 2: Item 1', url: '#' },
+ { name: 'Level 2: Item 2', url: '#' },
+ {
+ name: 'Level 2: Item 3',
+ url: '#',
+ child: [
+ { name: 'Level 3: Item 1', url: '#' },
+ { name: 'Level 3: Item 2', url: '#' },
+ ],
+ },
+ { name: 'Level 2: Item 4', url: '#' },
+ ],
+ },
+ { name: 'Level 1: Item 3', url: '#' },
+ { name: 'Level 1: Item 4', url: '#' },
+];
+
+export const LinksList = Template.bind({});
+LinksList.args = {
+ items,
+ level: 2,
+ title: 'A list of links',
+};