From 26823ee4384cdb7a07e710ae5c3868a3a1f11e2e Mon Sep 17 00:00:00 2001 From: Uchechukwu Obasi Date: Wed, 24 Mar 2021 08:50:27 +0100 Subject: [PATCH] RadioButton: updates story from knobs to controls (#32251) --- .../RadioButtonGroup.story.tsx | 48 ++++++++++++------- .../RadioButtonGroup/RadioButtonGroup.tsx | 2 +- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.story.tsx b/packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.story.tsx index e60be1e3719..b6b3d12c3e7 100644 --- a/packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.story.tsx +++ b/packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.story.tsx @@ -1,8 +1,8 @@ import React, { useState } from 'react'; import mdx from './RadioButtonGroup.mdx'; import { RadioButtonGroup } from './RadioButtonGroup'; -import { RadioButtonSize } from './RadioButton'; -import { boolean, select } from '@storybook/addon-knobs'; +import { Story } from '@storybook/react'; +import { NOOP_CONTROL } from '../../../utils/storybook/noopControl'; export default { title: 'Forms/RadioButtonGroup', @@ -11,18 +11,24 @@ export default { docs: { page: mdx, }, + knobs: { + disable: true, + }, + }, + argTypes: { + disabledOptions: { + name: 'Disabled item', + control: { type: 'select', options: ['', 'graphite', 'prometheus', 'elastic'] }, + }, + size: { control: { type: 'select' } }, + className: NOOP_CONTROL, + options: NOOP_CONTROL, + value: NOOP_CONTROL, }, }; -const sizes: RadioButtonSize[] = ['sm', 'md']; - -export const RadioButtons = () => { +export const RadioButtons: Story = (args) => { const [selected, setSelected] = useState('elastic'); - const BEHAVIOUR_GROUP = 'Behaviour props'; - const disabled = boolean('Disabled', false, BEHAVIOUR_GROUP); - const disabledItem = select('Disabled item', ['', 'graphite', 'prometheus', 'elastic'], '', BEHAVIOUR_GROUP); - const VISUAL_GROUP = 'Visual options'; - const size = select('Size', sizes, 'md', VISUAL_GROUP); const options = [ { label: 'Prometheus', value: 'prometheus' }, @@ -42,23 +48,23 @@ export const RadioButtons = () => {
Full width
setSelected(v!)} - size={size} - fullWidth + size={args.size} + fullWidth={args.fullWidth} />
Auto width
setSelected(v!)} - size={size} + size={args.size} />
@@ -67,9 +73,15 @@ export const RadioButtons = () => { options={optionsWithOnlyIcons} value={selected} onChange={(v) => setSelected(v!)} - size={size} + size={args.size} />
); }; +RadioButtons.args = { + disabled: false, + disabledOptions: '', + size: 'md', + fullWidth: true, +}; diff --git a/packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.tsx b/packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.tsx index 3e8b3020f4b..6815611b183 100644 --- a/packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.tsx +++ b/packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.tsx @@ -37,7 +37,7 @@ const getRadioButtonGroupStyles = () => { }; }; -interface RadioButtonGroupProps { +export interface RadioButtonGroupProps { value?: T; disabled?: boolean; disabledOptions?: T[];