@@ -17,7 +17,10 @@ import { useTypedSelector } from "@theme/ApiItem/hooks";
17
17
import merge from "lodash/merge" ;
18
18
19
19
import { CodeSample , Language } from "./code-snippets-types" ;
20
- import { mergeCodeSampleLanguage } from "./languages" ;
20
+ import {
21
+ getCodeSampleSourceFromLanguage ,
22
+ mergeCodeSampleLanguage ,
23
+ } from "./languages" ;
21
24
22
25
export const languageSet : Language [ ] = [
23
26
{
@@ -198,20 +201,13 @@ function CodeSnippets({ postman, codeSamples }: Props) {
198
201
return defaultLang [ 0 ] ?? mergedLangs [ 0 ] ;
199
202
} ) ;
200
203
const [ codeText , setCodeText ] = useState < string > ( "" ) ;
201
- const [ codeSampleCodeText , setCodeSampleCodeText ] = useState < string > ( "" ) ;
204
+ const [ codeSampleCodeText , setCodeSampleCodeText ] = useState <
205
+ string | ( ( ) => string )
206
+ > ( ( ) => getCodeSampleSourceFromLanguage ( language ) ) ;
202
207
203
208
useEffect ( ( ) => {
204
- // initial active language is custom code sample
205
- if (
206
- language &&
207
- language . sample &&
208
- language . samples &&
209
- language . samplesSources
210
- ) {
211
- const sampleIndex = language . samples . findIndex (
212
- ( smp ) => smp === language . sample
213
- ) ;
214
- setCodeSampleCodeText ( language . samplesSources [ sampleIndex ] ) ;
209
+ if ( language && ! ! language . sample ) {
210
+ setCodeSampleCodeText ( getCodeSampleSourceFromLanguage ( language ) ) ;
215
211
}
216
212
217
213
if ( language && ! ! language . options ) {
@@ -344,7 +340,9 @@ function CodeSnippets({ postman, codeSamples }: Props) {
344
340
action = { {
345
341
setLanguage : setLanguage ,
346
342
setSelectedVariant : setSelectedVariant ,
343
+ setSelectedSample : setSelectedSample ,
347
344
} }
345
+ languageSet = { mergedLangs }
348
346
lazy
349
347
>
350
348
{ mergedLangs . map ( ( lang ) => {
@@ -367,6 +365,7 @@ function CodeSnippets({ postman, codeSamples }: Props) {
367
365
includeSample = { true }
368
366
currentLanguage = { lang . language }
369
367
defaultValue = { selectedSample }
368
+ languageSet = { mergedLangs }
370
369
lazy
371
370
>
372
371
{ lang . samples . map ( ( sample , index ) => {
@@ -406,6 +405,7 @@ function CodeSnippets({ postman, codeSamples }: Props) {
406
405
includeVariant = { true }
407
406
currentLanguage = { lang . language }
408
407
defaultValue = { selectedVariant }
408
+ languageSet = { mergedLangs }
409
409
lazy
410
410
>
411
411
{ lang . variants . map ( ( variant , index ) => {
0 commit comments