@@ -14,62 +14,92 @@ export default {
1414 component : Icons ,
1515} as Meta ;
1616
17- const DefaultTemplate : StoryFn < IconsBlockModel > = ( args ) => {
18- const transformedArgs = blockTransform ( args ) as IconsBlockProps ;
19- return (
20- < div style = { { padding : '64px' } } >
21- < IconsBlock { ...transformedArgs } />
22- </ div >
23- ) ;
24- } ;
25-
26- const WithDescriptionTemplate : StoryFn < IconsBlockModel > = ( args ) => {
27- const transformedArgs = blockTransform ( args ) as IconsBlockProps ;
28- return (
29- < div style = { { padding : '64px' } } >
30- < IconsBlock { ...transformedArgs } />
31- </ div >
32- ) ;
33- } ;
17+ const DefaultTemplate : StoryFn < IconsBlockModel > = ( args ) => (
18+ < div style = { { padding : '64px' } } >
19+ < IconsBlock { ...( blockTransform ( args ) as IconsBlockProps ) } />
20+ </ div >
21+ ) ;
3422
35- const SizeTemplate : StoryFn < IconsBlockModel > = ( args ) => (
23+ const SizeTemplate : StoryFn < Record < string , IconsBlockModel > > = ( args ) => (
3624 < React . Fragment >
37- < DefaultTemplate title = "Size S" { ...args } size = "s" />
38- < DefaultTemplate title = "Size M" { ...args } size = "m" />
39- < DefaultTemplate title = "Size L" { ...args } size = "l" />
25+ { Object . entries ( args )
26+ . map ( ( [ key , item ] ) => {
27+ const transformed = blockTransform ( item ) as IconsBlockProps ;
28+ return (
29+ < div key = { key } style = { { padding : '64px' } } >
30+ < IconsBlock { ...transformed } />
31+ </ div >
32+ ) ;
33+ } )
34+ . filter ( Boolean ) }
4035 </ React . Fragment >
4136) ;
4237
43- const ColSizeTemplate : StoryFn < IconsBlockModel > = ( args ) => {
44- const transformedArgs12 = blockTransform ( {
45- ...args ,
38+ const ColSizeTemplate : StoryFn < Record < string , IconsBlockModel > > = ( args ) => (
39+ < div style = { { padding : '64px' } } >
40+ { Object . entries ( args )
41+ . map ( ( [ key , item ] ) => {
42+ const transformed = blockTransform ( item ) as IconsBlockProps ;
43+ return < IconsBlock key = { key } { ...transformed } /> ;
44+ } )
45+ . filter ( Boolean ) }
46+ </ div >
47+ ) ;
48+
49+ export const Default = DefaultTemplate . bind ( { } ) ;
50+ export const Size = SizeTemplate . bind ( { } ) ;
51+ export const WithText = DefaultTemplate . bind ( { } ) ;
52+ export const HeaderColSize = ColSizeTemplate . bind ( { } ) ;
53+
54+ Default . args = data . default . content as IconsBlockModel ;
55+
56+ WithText . args = data . withDescription . content as IconsBlockModel ;
57+
58+ const SIZES : Record < string , IconsBlockModel > = {
59+ size_s : {
60+ ...data . size . content ,
61+ title : 'Size S' ,
62+ size : 's' ,
63+ } as IconsBlockModel ,
64+ size_m : {
65+ ...data . size . content ,
66+ title : 'Size M' ,
67+ size : 'm' ,
68+ } as IconsBlockModel ,
69+ size_l : {
70+ ...data . size . content ,
71+ title : 'Size L' ,
72+ size : 'l' ,
73+ } as IconsBlockModel ,
74+ } ;
75+
76+ Size . args = SIZES ;
77+ Size . parameters = {
78+ controls : {
79+ include : Object . keys ( SIZES ) ,
80+ } ,
81+ } ;
82+
83+ const COL_SIZES : Record < string , IconsBlockModel > = {
84+ col_12 : {
85+ ...data . withDescription . content ,
4686 title : 'ColSize 12' ,
47- } ) as IconsBlockProps ;
48- const transformedArgs8 = blockTransform ( {
49- ...args ,
87+ } as IconsBlockModel ,
88+ col_8 : {
89+ ...data . withDescription . content ,
5090 title : 'ColSize 8' ,
5191 colSizes : { all : 8 } ,
52- } ) as IconsBlockProps ;
53- const transformedArgs4 = blockTransform ( {
54- ...args ,
92+ } as IconsBlockModel ,
93+ col_4 : {
94+ ...data . withDescription . content ,
5595 title : 'ColSize 4' ,
5696 colSizes : { all : 4 } ,
57- } ) as IconsBlockProps ;
58- return (
59- < div style = { { padding : '64px' } } >
60- < IconsBlock { ...transformedArgs12 } />
61- < IconsBlock { ...transformedArgs8 } />
62- < IconsBlock { ...transformedArgs4 } />
63- </ div >
64- ) ;
97+ } as IconsBlockModel ,
6598} ;
6699
67- export const Default = DefaultTemplate . bind ( [ ] ) ;
68- export const Size = SizeTemplate . bind ( [ ] ) ;
69- export const WithText = WithDescriptionTemplate . bind ( { } ) ;
70- export const HeaderColSize = ColSizeTemplate . bind ( { } ) ;
71-
72- Default . args = data . default . content as IconsBlockProps ;
73- Size . args = data . size . content as Omit < IconsBlockProps , 'size' > ;
74- WithText . args = data . withDescription . content as IconsBlockProps ;
75- HeaderColSize . args = data . withDescription . content as IconsBlockProps ;
100+ HeaderColSize . args = COL_SIZES ;
101+ HeaderColSize . parameters = {
102+ controls : {
103+ include : Object . keys ( COL_SIZES ) ,
104+ } ,
105+ } ;
0 commit comments