@@ -155,8 +155,6 @@ function CodeSnippets({
155155 ( lang ) =>
156156 lang . language === localStorage . getItem ( "docusaurus.tab.code-samples" )
157157 ) ;
158- const [ selectedVariant , setSelectedVariant ] = useState < string | undefined > ( ) ;
159- const [ selectedSample , setSelectedSample ] = useState < string | undefined > ( ) ;
160158 const [ language , setLanguage ] = useState ( ( ) => {
161159 // Return first index if only 1 user-defined language exists
162160 if ( mergedLangs . length === 1 ) {
@@ -165,6 +163,12 @@ function CodeSnippets({
165163 // Fall back to language in localStorage or first user-defined language
166164 return defaultLang [ 0 ] ?? mergedLangs [ 0 ] ;
167165 } ) ;
166+ const [ selectedVariant , setSelectedVariant ] = useState < string | undefined > (
167+ language . variant
168+ ) ;
169+ const [ selectedSample , setSelectedSample ] = useState < string | undefined > (
170+ language . sample
171+ ) ;
168172 const [ codeText , setCodeText ] = useState < string > ( "" ) ;
169173 const [ codeSampleCodeText , setCodeSampleCodeText ] = useState <
170174 string | ( ( ) => string )
@@ -174,7 +178,9 @@ function CodeSnippets({
174178 if ( language && ! ! language . sample ) {
175179 setCodeSampleCodeText ( getCodeSampleSourceFromLanguage ( language ) ) ;
176180 }
181+ } , [ language , selectedSample ] ) ;
177182
183+ useEffect ( ( ) => {
178184 async function generateSnippet ( ) {
179185 if ( ! language ) {
180186 setCodeText ( "" ) ;
@@ -198,7 +204,7 @@ function CodeSnippets({
198204 } as Postman . Document ) ;
199205 const snippet = await new HTTPSnippet ( harRequest ) . convert (
200206 mergedLanguage . language as TargetId ,
201- mergedLanguage . variant ,
207+ selectedVariant ?? mergedLanguage . variant ,
202208 mergedLanguage . options
203209 ) ;
204210 setCodeText ( typeof snippet === "string" ? snippet : "" ) ;
@@ -217,53 +223,8 @@ function CodeSnippets({
217223 server ,
218224 cleanedPostmanRequest ,
219225 mergedLangs ,
226+ selectedVariant ,
220227 ] ) ;
221- // no dependencies was intentionally set for this particular hook. it's safe as long as if conditions are set
222- useEffect ( function onSelectedVariantUpdate ( ) {
223- if ( selectedVariant && selectedVariant !== language ?. variant && language ) {
224- ( async ( ) => {
225- const langSource = mergedLangs . filter (
226- ( lang ) => lang . language === language . language
227- ) ;
228- const mergedLanguage = language . options
229- ? language
230- : { ...langSource [ 0 ] , ...language } ;
231- const collection = new sdk . Collection ( {
232- item : [ { name : "request" , request : cleanedPostmanRequest } ] ,
233- } ) ;
234- const [ harRequest ] = await postman2har ( {
235- ...collection . toJSON ( ) ,
236- info : {
237- schema :
238- "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" ,
239- } ,
240- } as Postman . Document ) ;
241- const snippet = await new HTTPSnippet ( harRequest ) . convert (
242- mergedLanguage . language as TargetId ,
243- selectedVariant ,
244- mergedLanguage . options
245- ) ;
246- setCodeText ( typeof snippet === "string" ? snippet : "" ) ;
247- } ) ( ) ;
248- }
249- } ) ;
250-
251- // no dependencies was intentionally set for this particular hook. it's safe as long as if conditions are set
252- // eslint-disable-next-line react-hooks/exhaustive-deps
253- useEffect ( function onSelectedSampleUpdate ( ) {
254- if (
255- language &&
256- language . samples &&
257- language . samplesSources &&
258- selectedSample &&
259- selectedSample !== language . sample
260- ) {
261- const sampleIndex = language . samples . findIndex (
262- ( smp ) => smp === selectedSample
263- ) ;
264- setCodeSampleCodeText ( language . samplesSources [ sampleIndex ] ) ;
265- }
266- } ) ;
267228
268229 if ( language === undefined ) {
269230 return null ;
@@ -303,7 +264,7 @@ function CodeSnippets({
303264 } }
304265 includeSample = { true }
305266 currentLanguage = { lang . language }
306- defaultValue = { selectedSample }
267+ defaultValue = { selectedSample ?? language . sample }
307268 languageSet = { mergedLangs }
308269 lazy
309270 >
@@ -344,7 +305,7 @@ function CodeSnippets({
344305 } }
345306 includeVariant = { true }
346307 currentLanguage = { lang . language }
347- defaultValue = { selectedVariant }
308+ defaultValue = { selectedVariant ?? language . variant }
348309 languageSet = { mergedLangs }
349310 lazy
350311 >
0 commit comments