11import { Meta , StoryObj } from '@storybook/react' ;
22import { ReactNode , useState } from 'react' ;
33import MakeCodeBlocksRendering from '../../react/MakeCodeBlocksRendering.js' ;
4+ import { MakeCodeRenderBlocksProvider } from '../../react/MakeCodeRenderBlocksProvider.js' ;
5+ import { BlockLayout , Project } from '../../vanilla/pxt.js' ;
46import {
57 initialProject ,
68 project ,
9+ projectWithCustomBlock ,
710 projectWithDatalogging ,
811 projectWithExtensionBlock ,
912 projectWithLayout ,
10- projectWithCustomBlock ,
1113 projectWithMelody ,
1214 projectWithTwoExtensions ,
1315 projectWithUserLayout ,
1416 strawbeesExample ,
1517} from '../fixtures.js' ;
16- import { MakeCodeRenderBlocksProvider } from '../../react/MakeCodeRenderBlocksProvider.js' ;
17- import { MakeCodeRenderBlocksOptions } from '../../vanilla/makecode-render-blocks.js' ;
18- import { BlockLayout , Project } from '../../vanilla/pxt.js' ;
1918
2019const meta : Meta < typeof MakeCodeRenderBlocksProvider > = {
2120 title : 'stories/React/MakeCodeBlocksRendering' ,
2221 component : MakeCodeRenderBlocksProvider ,
2322 argTypes : {
24- options : {
23+ version : {
2524 options : [ 'default' , 'beta' ] ,
2625 defaultValue : 'default' ,
27- name : 'version' ,
2826 control : { type : 'radio' } ,
2927 } ,
3028 } ,
@@ -47,23 +45,17 @@ const StoryWrapper = (props: { children: ReactNode }) => (
4745 </ div >
4846) ;
4947
50- const getOptionsFromVersion = (
51- version : string
52- ) : MakeCodeRenderBlocksOptions => {
53- const options : MakeCodeRenderBlocksOptions = { } ;
54- if ( version && version !== 'default' ) {
55- options [ 'version' ] = version ;
56- }
57- return options ;
48+ const adaptStorybookVersion = (
49+ version : string | undefined
50+ ) : string | undefined => {
51+ return version && version !== 'default' ? version : undefined ;
5852} ;
5953
6054export const Simple : Story = {
61- render : ( args ) => {
62- const { options : version } = args ;
63- const options = getOptionsFromVersion ( version as string ) ;
55+ render : ( { version } ) => {
6456 return (
65- < StoryWrapper key = { options . version } >
66- < MakeCodeRenderBlocksProvider options = { options } >
57+ < StoryWrapper key = { version } >
58+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
6759 < MakeCodeBlocksRendering code = { project . text ! [ 'main.ts' ] } />
6860 </ MakeCodeRenderBlocksProvider >
6961 </ StoryWrapper >
@@ -72,12 +64,10 @@ export const Simple: Story = {
7264} ;
7365
7466export const XML : Story = {
75- render : ( args ) => {
76- const { options : version } = args ;
77- const options = getOptionsFromVersion ( version as string ) ;
67+ render : ( { version } ) => {
7868 return (
79- < StoryWrapper key = { options . version } >
80- < MakeCodeRenderBlocksProvider options = { options } >
69+ < StoryWrapper key = { version } >
70+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
8171 < MakeCodeBlocksRendering code = { projectWithLayout } />
8272 </ MakeCodeRenderBlocksProvider >
8373 </ StoryWrapper >
@@ -87,12 +77,10 @@ export const XML: Story = {
8777
8878export const Published : Story = {
8979 render : ( args ) => {
90- const { options : version } = args ;
91- const options = getOptionsFromVersion ( version as string ) ;
92- console . log ( options ) ;
80+ const { version } = args ;
9381 return (
94- < StoryWrapper key = { options . version } >
95- < MakeCodeRenderBlocksProvider options = { options } >
82+ < StoryWrapper key = { version } >
83+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
9684 < MakeCodeBlocksRendering packageId = "_iHY3J9371HLf" />
9785 </ MakeCodeRenderBlocksProvider >
9886 </ StoryWrapper >
@@ -102,11 +90,10 @@ export const Published: Story = {
10290
10391export const Melody : Story = {
10492 render : ( args ) => {
105- const { options : version } = args ;
106- const options = getOptionsFromVersion ( version as string ) ;
93+ const { version } = args ;
10794 return (
108- < StoryWrapper key = { options . version } >
109- < MakeCodeRenderBlocksProvider options = { options } >
95+ < StoryWrapper key = { version } >
96+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
11097 < MakeCodeBlocksRendering code = { projectWithMelody } />
11198 </ MakeCodeRenderBlocksProvider >
11299 </ StoryWrapper >
@@ -117,11 +104,10 @@ export const Melody: Story = {
117104export const ExtensionBlockSingle : Story = {
118105 name : 'Extension block (single)' ,
119106 render : ( args ) => {
120- const { options : version } = args ;
121- const options = getOptionsFromVersion ( version as string ) ;
107+ const { version } = args ;
122108 return (
123- < StoryWrapper key = { options . version } >
124- < MakeCodeRenderBlocksProvider options = { options } >
109+ < StoryWrapper key = { version } >
110+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
125111 < MakeCodeBlocksRendering code = { projectWithExtensionBlock } />
126112 </ MakeCodeRenderBlocksProvider >
127113 </ StoryWrapper >
@@ -132,11 +118,10 @@ export const ExtensionBlockSingle: Story = {
132118export const ExtensionBlockTwo : Story = {
133119 name : 'Extension block (two different)' ,
134120 render : ( args ) => {
135- const { options : version } = args ;
136- const options = getOptionsFromVersion ( version as string ) ;
121+ const { version } = args ;
137122 return (
138- < StoryWrapper key = { options . version } >
139- < MakeCodeRenderBlocksProvider options = { options } >
123+ < StoryWrapper key = { version } >
124+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
140125 < MakeCodeBlocksRendering code = { projectWithTwoExtensions } />
141126 </ MakeCodeRenderBlocksProvider >
142127 </ StoryWrapper >
@@ -147,11 +132,10 @@ export const ExtensionBlockTwo: Story = {
147132export const ExtensionBlockStrawbees : Story = {
148133 name : 'Extension block (Strawbees - spaces in name)' ,
149134 render : ( args ) => {
150- const { options : version } = args ;
151- const options = getOptionsFromVersion ( version as string ) ;
135+ const { version } = args ;
152136 return (
153- < StoryWrapper key = { options . version } >
154- < MakeCodeRenderBlocksProvider options = { options } >
137+ < StoryWrapper key = { version } >
138+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
155139 < MakeCodeBlocksRendering code = { strawbeesExample } />
156140 </ MakeCodeRenderBlocksProvider >
157141 </ StoryWrapper >
@@ -162,11 +146,10 @@ export const ExtensionBlockStrawbees: Story = {
162146export const ExtensionBlockDatalogging : Story = {
163147 name : 'Extension block (Datalogging)' ,
164148 render : ( args ) => {
165- const { options : version } = args ;
166- const options = getOptionsFromVersion ( version as string ) ;
149+ const { version } = args ;
167150 return (
168- < StoryWrapper key = { options . version } >
169- < MakeCodeRenderBlocksProvider options = { options } >
151+ < StoryWrapper key = { version } >
152+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
170153 < MakeCodeBlocksRendering code = { projectWithDatalogging } />
171154 </ MakeCodeRenderBlocksProvider >
172155 </ StoryWrapper >
@@ -177,11 +160,10 @@ export const ExtensionBlockDatalogging: Story = {
177160export const CustomBlock : Story = {
178161 name : 'Custom block' ,
179162 render : ( args ) => {
180- const { options : version } = args ;
181- const options = getOptionsFromVersion ( version as string ) ;
163+ const { version } = args ;
182164 return (
183- < StoryWrapper key = { options . version } >
184- < MakeCodeRenderBlocksProvider options = { options } >
165+ < StoryWrapper key = { version } >
166+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
185167 < MakeCodeBlocksRendering code = { projectWithCustomBlock } />
186168 </ MakeCodeRenderBlocksProvider >
187169 </ StoryWrapper >
@@ -193,7 +175,7 @@ export const Error: Story = {
193175 render : ( ) => {
194176 return (
195177 < StoryWrapper >
196- < MakeCodeRenderBlocksProvider options = { { version : ' intentional-404' } } >
178+ < MakeCodeRenderBlocksProvider version = " intentional-404" >
197179 < MakeCodeBlocksRendering code = { project . text ! [ 'main.ts' ] } />
198180 </ MakeCodeRenderBlocksProvider >
199181 </ StoryWrapper >
@@ -204,11 +186,10 @@ export const Error: Story = {
204186export const Robust : Story = {
205187 name : 'Robust against invalid/empty project' ,
206188 render : ( args ) => {
207- const { options : version } = args ;
208- const options = getOptionsFromVersion ( version as string ) ;
189+ const { version } = args ;
209190 return (
210- < StoryWrapper key = { options . version } >
211- < MakeCodeRenderBlocksProvider options = { options } >
191+ < StoryWrapper key = { version } >
192+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
212193 < MakeCodeBlocksRendering code = { { } as Project } />
213194 </ MakeCodeRenderBlocksProvider >
214195 </ StoryWrapper >
@@ -219,11 +200,10 @@ export const Robust: Story = {
219200export const InitialBlankProject : Story = {
220201 name : 'Initial blank project' ,
221202 render : ( args ) => {
222- const { options : version } = args ;
223- const options = getOptionsFromVersion ( version as string ) ;
203+ const { version } = args ;
224204 return (
225- < StoryWrapper key = { options . version } >
226- < MakeCodeRenderBlocksProvider options = { options } >
205+ < StoryWrapper key = { version } >
206+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
227207 < MakeCodeBlocksRendering code = { initialProject } />
228208 </ MakeCodeRenderBlocksProvider >
229209 </ StoryWrapper >
@@ -234,11 +214,10 @@ export const InitialBlankProject: Story = {
234214export const EmptyString : Story = {
235215 name : 'Empty string' ,
236216 render : ( args ) => {
237- const { options : version } = args ;
238- const options = getOptionsFromVersion ( version as string ) ;
217+ const { version } = args ;
239218 return (
240- < StoryWrapper key = { options . version } >
241- < MakeCodeRenderBlocksProvider options = { options } >
219+ < StoryWrapper key = { version } >
220+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
242221 < MakeCodeBlocksRendering code = "" />
243222 </ MakeCodeRenderBlocksProvider >
244223 </ StoryWrapper >
@@ -249,13 +228,14 @@ export const EmptyString: Story = {
249228export const EmptyToBlocksTransition : Story = {
250229 name : 'Empty to blocks transition' ,
251230 render : ( args ) => {
252- const { options : version } = args ;
253- const options = getOptionsFromVersion ( version as string ) ;
231+ const { version } = args ;
254232 const [ project , setProject ] = useState < Project > ( initialProject ) ;
255233 return (
256- < StoryWrapper key = { options . version } >
234+ < StoryWrapper key = { version } >
257235 < div style = { { display : 'grid' , gridTemplateColumns : '50% 50%' } } >
258- < MakeCodeRenderBlocksProvider options = { options } >
236+ < MakeCodeRenderBlocksProvider
237+ version = { adaptStorybookVersion ( version ) }
238+ >
259239 < MakeCodeBlocksRendering code = { project } />
260240 </ MakeCodeRenderBlocksProvider >
261241 < div >
@@ -280,11 +260,10 @@ export const EmptyToBlocksTransition: Story = {
280260export const RespectUserLayout : Story = {
281261 name : 'Respect user layout' ,
282262 render : ( args ) => {
283- const { options : version } = args ;
284- const options = getOptionsFromVersion ( version as string ) ;
263+ const { version } = args ;
285264 return (
286- < StoryWrapper key = { options . version } >
287- < MakeCodeRenderBlocksProvider options = { options } >
265+ < StoryWrapper key = { version } >
266+ < MakeCodeRenderBlocksProvider version = { adaptStorybookVersion ( version ) } >
288267 < MakeCodeBlocksRendering
289268 code = { projectWithUserLayout }
290269 layout = { BlockLayout . Clean }
0 commit comments