From 8c6acf462f9c22432ec97ec57a7d8e833e635a78 Mon Sep 17 00:00:00 2001 From: Riley Date: Wed, 5 Dec 2018 11:12:18 -0700 Subject: [PATCH 1/9] Adding `radios` to TS definition --- types/storybook__addon-knobs/index.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/types/storybook__addon-knobs/index.d.ts b/types/storybook__addon-knobs/index.d.ts index 8c3ddc35f8..dc03c48cb8 100644 --- a/types/storybook__addon-knobs/index.d.ts +++ b/types/storybook__addon-knobs/index.d.ts @@ -47,6 +47,8 @@ export function color(name: string, value: string, groupId?: string): string; export function object(name: string, value: T, groupId?: string): T; +export function radios(name: string, options: KnobOption, value: string | null, groupId?: string): string; + export type SelectValue = string | number; export function select(name: string, options: { [s: string]: string }, value: T, groupId?: string): T; export function select(name: string, options: { [s: number]: string }, value: T, groupId?: string): T; From 84aed54793d7e0c8962213aabac41fa172d32a5c Mon Sep 17 00:00:00 2001 From: Riley Date: Wed, 5 Dec 2018 11:17:44 -0700 Subject: [PATCH 2/9] Should be just a simple object for radio options --- types/storybook__addon-knobs/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/storybook__addon-knobs/index.d.ts b/types/storybook__addon-knobs/index.d.ts index dc03c48cb8..f028b38965 100644 --- a/types/storybook__addon-knobs/index.d.ts +++ b/types/storybook__addon-knobs/index.d.ts @@ -47,7 +47,7 @@ export function color(name: string, value: string, groupId?: string): string; export function object(name: string, value: T, groupId?: string): T; -export function radios(name: string, options: KnobOption, value: string | null, groupId?: string): string; +export function radios(name: string, options: object, value: string | null, groupId?: string): string; export type SelectValue = string | number; export function select(name: string, options: { [s: string]: string }, value: T, groupId?: string): T; From 11c44231276cad1ecd7b039af4b9a4ca77f735df Mon Sep 17 00:00:00 2001 From: Riley Brown Date: Wed, 5 Dec 2018 14:38:24 -0700 Subject: [PATCH 3/9] Specifying addon-knob radio option type --- types/storybook__addon-knobs/index.d.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/types/storybook__addon-knobs/index.d.ts b/types/storybook__addon-knobs/index.d.ts index f028b38965..2bf13c11f7 100644 --- a/types/storybook__addon-knobs/index.d.ts +++ b/types/storybook__addon-knobs/index.d.ts @@ -33,6 +33,8 @@ export interface EmptyNumberOptions { step?: undefined; } +export interface RadioOptions { [key: string]: T} + export function knob(name: string, options: KnobOption): T; export function text(name: string, value: string | null, groupId?: string): string; @@ -47,7 +49,7 @@ export function color(name: string, value: string, groupId?: string): string; export function object(name: string, value: T, groupId?: string): T; -export function radios(name: string, options: object, value: string | null, groupId?: string): string; +export function radios(name: string, options: RadioOptions, value: string | null, groupId?: string): string; export type SelectValue = string | number; export function select(name: string, options: { [s: string]: string }, value: T, groupId?: string): T; From 71c3688cd41115fba4382911b305f5d365f21a59 Mon Sep 17 00:00:00 2001 From: Riley Brown Date: Wed, 5 Dec 2018 17:14:27 -0700 Subject: [PATCH 4/9] Fixing storybook__addon-knobs linting error --- types/storybook__addon-knobs/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/storybook__addon-knobs/index.d.ts b/types/storybook__addon-knobs/index.d.ts index 2bf13c11f7..c1b70f67d1 100644 --- a/types/storybook__addon-knobs/index.d.ts +++ b/types/storybook__addon-knobs/index.d.ts @@ -33,7 +33,7 @@ export interface EmptyNumberOptions { step?: undefined; } -export interface RadioOptions { [key: string]: T} +export interface RadioOptions { [key: string]: T;} export function knob(name: string, options: KnobOption): T; From 52d702d94aeb7d97770c293700392100f6c27592 Mon Sep 17 00:00:00 2001 From: Riley Brown Date: Fri, 7 Dec 2018 15:09:22 -0700 Subject: [PATCH 5/9] Storybook__addon-knobs making radios types generic --- types/storybook__addon-knobs/index.d.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/types/storybook__addon-knobs/index.d.ts b/types/storybook__addon-knobs/index.d.ts index c1b70f67d1..578d920bb3 100644 --- a/types/storybook__addon-knobs/index.d.ts +++ b/types/storybook__addon-knobs/index.d.ts @@ -11,7 +11,7 @@ import { RenderFunction } from '@storybook/react'; export interface KnobOption { value: T; - type: 'text' | 'boolean' | 'number' | 'color' | 'object' | 'select' | 'date'; + type: 'text' | 'boolean' | 'number' | 'color' | 'object' | 'select' | 'date' | 'radios'; } export interface StoryContext { @@ -33,8 +33,6 @@ export interface EmptyNumberOptions { step?: undefined; } -export interface RadioOptions { [key: string]: T;} - export function knob(name: string, options: KnobOption): T; export function text(name: string, value: string | null, groupId?: string): string; @@ -49,7 +47,7 @@ export function color(name: string, value: string, groupId?: string): string; export function object(name: string, value: T, groupId?: string): T; -export function radios(name: string, options: RadioOptions, value: string | null, groupId?: string): string; +export function radios(name: string, options: { [s: string]: T}, value: T | null, groupId?: string): string; export type SelectValue = string | number; export function select(name: string, options: { [s: string]: string }, value: T, groupId?: string): T; From d9efd9a181355b4d10235ba4922c4e1c1260bbbf Mon Sep 17 00:00:00 2001 From: Riley Brown Date: Fri, 7 Dec 2018 15:09:34 -0700 Subject: [PATCH 6/9] linting fixes --- types/storybook__addon-knobs/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/storybook__addon-knobs/index.d.ts b/types/storybook__addon-knobs/index.d.ts index 578d920bb3..59f621134a 100644 --- a/types/storybook__addon-knobs/index.d.ts +++ b/types/storybook__addon-knobs/index.d.ts @@ -47,7 +47,7 @@ export function color(name: string, value: string, groupId?: string): string; export function object(name: string, value: T, groupId?: string): T; -export function radios(name: string, options: { [s: string]: T}, value: T | null, groupId?: string): string; +export function radios(name: string, options: { [s: string]: T }, value: T | null, groupId?: string): string; export type SelectValue = string | number; export function select(name: string, options: { [s: string]: string }, value: T, groupId?: string): T; From 97706963d59c650d0420622fbb5a65a4266bc5cc Mon Sep 17 00:00:00 2001 From: Riley Brown Date: Fri, 7 Dec 2018 15:18:20 -0700 Subject: [PATCH 7/9] storybook__addon-knobs - radios - Making the default value optional --- types/storybook__addon-knobs/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/storybook__addon-knobs/index.d.ts b/types/storybook__addon-knobs/index.d.ts index 59f621134a..7e96278069 100644 --- a/types/storybook__addon-knobs/index.d.ts +++ b/types/storybook__addon-knobs/index.d.ts @@ -47,7 +47,7 @@ export function color(name: string, value: string, groupId?: string): string; export function object(name: string, value: T, groupId?: string): T; -export function radios(name: string, options: { [s: string]: T }, value: T | null, groupId?: string): string; +export function radios(name: string, options: { [s: string]: T }, value?: T, groupId?: string): string; export type SelectValue = string | number; export function select(name: string, options: { [s: string]: string }, value: T, groupId?: string): T; From c7f40f4537918f8b2f4687dd813f120d7ad3ee89 Mon Sep 17 00:00:00 2001 From: Riley Brown Date: Fri, 7 Dec 2018 15:23:02 -0700 Subject: [PATCH 8/9] Storybook__addon-knobs tests --- types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx b/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx index 85155fc5c7..a8ddd51269 100644 --- a/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx +++ b/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx @@ -15,6 +15,7 @@ import { button, knob, selectV2, + radios, } from '@storybook/addon-knobs'; enum SomeEnum { @@ -35,6 +36,7 @@ stories.add('with all knobs', () => { const selectedColor = color('Color', 'black'); const favoriteNumber = number('Favorite Number', 42); const comfortTemp = number('Comfort Temp', 72, { range: true, min: 60, max: 90, step: 1 }); + const radioStation = radios('Favorite Radio Station', {1100: "1100", 2200: "2200", 3300: "3300"}); const textDecoration = select('Decoration', { none: 'None', underline: 'Underline', @@ -78,6 +80,7 @@ stories.add('with all knobs', () => { I'm {name} and I was born on "{dob}"

My favorite number is {favoriteNumber}.

My most comfortable room temperature is {comfortTemp} degrees Fahrenheit.

+

My favorite radio station is: {radioStation}

); }); @@ -111,6 +114,7 @@ number('label', 1, {}, groupId); color('label', '#ffffff', groupId); object('label', {}, groupId); array('label', [], ',', groupId); +radios('label', {}, null, groupId); select('label', { option: 'Option' }, null, groupId); files('label', 'image/*', []); date('label', new Date(), groupId); From ce532e6f66ce9330c234286dfdf8be5ff5980c1e Mon Sep 17 00:00:00 2001 From: Riley Brown Date: Tue, 11 Dec 2018 09:34:33 -0700 Subject: [PATCH 9/9] Fixing storybook__addon-knobs-tests linting --- types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx b/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx index a8ddd51269..6f2a50c67c 100644 --- a/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx +++ b/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx @@ -36,7 +36,7 @@ stories.add('with all knobs', () => { const selectedColor = color('Color', 'black'); const favoriteNumber = number('Favorite Number', 42); const comfortTemp = number('Comfort Temp', 72, { range: true, min: 60, max: 90, step: 1 }); - const radioStation = radios('Favorite Radio Station', {1100: "1100", 2200: "2200", 3300: "3300"}); + const radioStation = radios('Favorite Radio Station', { 1100: "1100", 2200: "2200", 3300: "3300" }); const textDecoration = select('Decoration', { none: 'None', underline: 'Underline',