diff --git a/packages/grafana-ui/src/components/Collapse/Collapse.story.tsx b/packages/grafana-ui/src/components/Collapse/Collapse.story.tsx index 0085d26e784..bba109be27c 100644 --- a/packages/grafana-ui/src/components/Collapse/Collapse.story.tsx +++ b/packages/grafana-ui/src/components/Collapse/Collapse.story.tsx @@ -1,12 +1,15 @@ -import { ComponentMeta } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { useArgs } from '@storybook/client-api'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; import React from 'react'; -import { UseState } from '../../utils/storybook/UseState'; import { withCenteredStory, withHorizontallyCenteredStory } from '../../utils/storybook/withCenteredStory'; import { Collapse, ControlledCollapse } from './Collapse'; import mdx from './Collapse.mdx'; +const EXCLUDED_PROPS = ['className', 'onToggle']; + const meta: ComponentMeta = { title: 'Layout/Collapse', component: Collapse, @@ -15,34 +18,47 @@ const meta: ComponentMeta = { docs: { page: mdx, }, + controls: { + exclude: EXCLUDED_PROPS, + }, + }, + args: { + children: 'Panel data', + isOpen: false, + label: 'Collapse panel', + collapsible: true, + }, + argTypes: { + onToggle: { action: 'toggled' }, }, }; -export const basic = () => { +export const Basic: ComponentStory = (args) => { + const [, updateArgs] = useArgs(); return ( - - {(state, updateValue) => { - return ( - updateValue({ isOpen: !state.isOpen })} - > -

Panel data

-
- ); + { + action('onToggle')({ isOpen: !args.isOpen }); + updateArgs({ isOpen: !args.isOpen }); }} -
+ > +

{args.children}

+ ); }; -export const controlled = () => { +export const Controlled: ComponentStory = (args) => { return ( - -

Panel data

+ +

{args.children}

); }; +Controlled.parameters = { + controls: { + exclude: [...EXCLUDED_PROPS, 'isOpen'], + }, +}; export default meta;