55 * LICENSE file in the root directory of this source tree.
66 * ========================================================================== */
77
8+ /* ============================================================================
9+ * Copyright (c) Palo Alto Networks
10+ *
11+ * This source code is licensed under the MIT license found in the
12+ * LICENSE file in the root directory of this source tree.
13+ * ========================================================================== */
14+
815import React , { useState , useEffect } from "react" ;
916
1017import useDocusaurusContext from "@docusaurus/useDocusaurusContext" ;
1118import ApiCodeBlock from "@theme/ApiExplorer/ApiCodeBlock" ;
1219import buildPostmanRequest from "@theme/ApiExplorer/buildPostmanRequest" ;
1320import CodeTabs from "@theme/ApiExplorer/CodeTabs" ;
1421import { useTypedSelector } from "@theme/ApiItem/hooks" ;
15- import merge from "lodash/merge" ;
1622import codegen from "postman-code-generators" ;
1723import sdk from "postman-collection" ;
1824
1925import { CodeSample , Language } from "./code-snippets-types" ;
2026import {
2127 getCodeSampleSourceFromLanguage ,
28+ mergeArraysbyLanguage ,
2229 mergeCodeSampleLanguage ,
2330} from "./languages" ;
2431
@@ -149,8 +156,6 @@ function CodeTab({ children, hidden, className }: any): JSX.Element {
149156}
150157
151158function CodeSnippets ( { postman, codeSamples } : Props ) {
152- // TODO: match theme for vscode.
153-
154159 const { siteConfig } = useDocusaurusContext ( ) ;
155160
156161 const contentType = useTypedSelector ( ( state : any ) => state . contentType . value ) ;
@@ -167,28 +172,29 @@ function CodeSnippets({ postman, codeSamples }: Props) {
167172
168173 // User-defined languages array
169174 // Can override languageSet, change order of langs, override options and variants
170- const langs = [
171- ...( ( siteConfig ?. themeConfig ?. languageTabs as Language [ ] | undefined ) ??
172- languageSet ) ,
173- ] ;
175+ const userDefinedLanguageSet = siteConfig ?. themeConfig ?. languageTabs as
176+ | Language [ ]
177+ | undefined ;
174178
175179 // Filter languageSet by user-defined langs
176180 const filteredLanguageSet = languageSet . filter ( ( ls ) => {
177- return langs . some ( ( lang ) => {
181+ return userDefinedLanguageSet ? .some ( ( lang ) => {
178182 return lang . language === ls . language ;
179183 } ) ;
180184 } ) ;
181185
182186 // Merge user-defined langs into languageSet
183187 const mergedLangs = mergeCodeSampleLanguage (
184- merge ( filteredLanguageSet , langs ) ,
185- codeSamples
188+ mergeArraysbyLanguage ( userDefinedLanguageSet , filteredLanguageSet ) ,
189+ codeSamples ,
186190 ) ;
187191
192+ console . log ( "merged" , mergedLangs ) ;
193+
188194 // Read defaultLang from localStorage
189195 const defaultLang : Language [ ] = mergedLangs . filter (
190196 ( lang ) =>
191- lang . language === localStorage . getItem ( "docusaurus.tab.code-samples" )
197+ lang . language === localStorage . getItem ( "docusaurus.tab.code-samples" ) ,
192198 ) ;
193199 const [ selectedVariant , setSelectedVariant ] = useState < string | undefined > ( ) ;
194200 const [ selectedSample , setSelectedSample ] = useState < string | undefined > ( ) ;
@@ -232,11 +238,11 @@ function CodeSnippets({ postman, codeSamples }: Props) {
232238 return ;
233239 }
234240 setCodeText ( snippet ) ;
235- }
241+ } ,
236242 ) ;
237243 } else if ( language && ! language . options ) {
238244 const langSource = mergedLangs . filter (
239- ( lang ) => lang . language === language . language
245+ ( lang ) => lang . language === language . language ,
240246 ) ;
241247
242248 // Merges user-defined language with default languageSet
@@ -265,7 +271,7 @@ function CodeSnippets({ postman, codeSamples }: Props) {
265271 return ;
266272 }
267273 setCodeText ( snippet ) ;
268- }
274+ } ,
269275 ) ;
270276 } else {
271277 setCodeText ( "" ) ;
@@ -308,7 +314,7 @@ function CodeSnippets({ postman, codeSamples }: Props) {
308314 return ;
309315 }
310316 setCodeText ( snippet ) ;
311- }
317+ } ,
312318 ) ;
313319 }
314320 } ) ;
@@ -323,7 +329,7 @@ function CodeSnippets({ postman, codeSamples }: Props) {
323329 selectedSample !== language . sample
324330 ) {
325331 const sampleIndex = language . samples . findIndex (
326- ( smp ) => smp === selectedSample
332+ ( smp ) => smp === selectedSample ,
327333 ) ;
328334 setCodeSampleCodeText ( language . samplesSources [ sampleIndex ] ) ;
329335 }
0 commit comments