docusaurus-theme-openapi-docs 0.0.0-695 → 0.0.0-697

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -246,19 +246,14 @@ function CodeSnippets({ postman, codeSamples }) {
246
246
  return defaultLang[0] ?? mergedLangs[0];
247
247
  });
248
248
  const [codeText, setCodeText] = (0, react_1.useState)("");
249
- const [codeSampleCodeText, setCodeSampleCodeText] = (0, react_1.useState)("");
249
+ const [codeSampleCodeText, setCodeSampleCodeText] = (0, react_1.useState)(
250
+ () => (0, languages_1.getCodeSampleSourceFromLanguage)(language)
251
+ );
250
252
  (0, react_1.useEffect)(() => {
251
- // initial active language is custom code sample
252
- if (
253
- language &&
254
- language.sample &&
255
- language.samples &&
256
- language.samplesSources
257
- ) {
258
- const sampleIndex = language.samples.findIndex(
259
- (smp) => smp === language.sample
253
+ if (language && !!language.sample) {
254
+ setCodeSampleCodeText(
255
+ (0, languages_1.getCodeSampleSourceFromLanguage)(language)
260
256
  );
261
- setCodeSampleCodeText(language.samplesSources[sampleIndex]);
262
257
  }
263
258
  if (language && !!language.options) {
264
259
  const postmanRequest = (0, buildPostmanRequest_1.default)(postman, {
@@ -388,7 +383,9 @@ function CodeSnippets({ postman, codeSamples }) {
388
383
  action: {
389
384
  setLanguage: setLanguage,
390
385
  setSelectedVariant: setSelectedVariant,
386
+ setSelectedSample: setSelectedSample,
391
387
  },
388
+ languageSet: mergedLangs,
392
389
  lazy: true,
393
390
  },
394
391
  mergedLangs.map((lang) => {
@@ -414,6 +411,7 @@ function CodeSnippets({ postman, codeSamples }) {
414
411
  includeSample: true,
415
412
  currentLanguage: lang.language,
416
413
  defaultValue: selectedSample,
414
+ languageSet: mergedLangs,
417
415
  lazy: true,
418
416
  },
419
417
  lang.samples.map((sample, index) => {
@@ -452,6 +450,7 @@ function CodeSnippets({ postman, codeSamples }) {
452
450
  includeVariant: true,
453
451
  currentLanguage: lang.language,
454
452
  defaultValue: selectedVariant,
453
+ languageSet: mergedLangs,
455
454
  lazy: true,
456
455
  },
457
456
  lang.variants.map((variant, index) => {
@@ -1,2 +1,3 @@
1
1
  import { CodeSample, Language } from "./code-snippets-types";
2
2
  export declare function mergeCodeSampleLanguage(languages: Language[], codeSamples: CodeSample[]): Language[];
3
+ export declare function getCodeSampleSourceFromLanguage(language: Language): string;
@@ -6,7 +6,8 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  * ========================================================================== */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.mergeCodeSampleLanguage = void 0;
9
+ exports.getCodeSampleSourceFromLanguage = exports.mergeCodeSampleLanguage =
10
+ void 0;
10
11
  function mergeCodeSampleLanguage(languages, codeSamples) {
11
12
  return languages.map((language) => {
12
13
  const languageCodeSamples = codeSamples.filter(
@@ -30,3 +31,18 @@ function mergeCodeSampleLanguage(languages, codeSamples) {
30
31
  });
31
32
  }
32
33
  exports.mergeCodeSampleLanguage = mergeCodeSampleLanguage;
34
+ function getCodeSampleSourceFromLanguage(language) {
35
+ if (
36
+ language &&
37
+ language.sample &&
38
+ language.samples &&
39
+ language.samplesSources
40
+ ) {
41
+ const sampleIndex = language.samples.findIndex(
42
+ (smp) => smp === language.sample
43
+ );
44
+ return language.samplesSources[sampleIndex];
45
+ }
46
+ return "";
47
+ }
48
+ exports.getCodeSampleSourceFromLanguage = getCodeSampleSourceFromLanguage;
@@ -12,12 +12,12 @@ import {
12
12
  useTabs,
13
13
  } from "@docusaurus/theme-common/internal";
14
14
  import useIsBrowser from "@docusaurus/useIsBrowser";
15
- import { languageSet } from "@theme/ApiExplorer/CodeSnippets";
16
15
  import clsx from "clsx";
17
16
 
18
17
  function TabList({
19
18
  action,
20
19
  currentLanguage,
20
+ languageSet,
21
21
  includeVariant,
22
22
  includeSample,
23
23
  className,
@@ -48,16 +48,18 @@ function TabList({
48
48
  )[0];
49
49
  newLanguage.variant = newTabValue;
50
50
  action.setSelectedVariant(newTabValue.toLowerCase());
51
+ } else if (currentLanguage && includeSample) {
52
+ newLanguage = languageSet.filter(
53
+ (lang) => lang.language === currentLanguage
54
+ )[0];
55
+ newLanguage.sample = newTabValue;
56
+ action.setSelectedSample(newTabValue);
51
57
  } else {
52
58
  newLanguage = languageSet.filter(
53
59
  (lang) => lang.language === newTabValue
54
60
  )[0];
55
61
  action.setSelectedVariant(newLanguage.variant.toLowerCase());
56
- }
57
-
58
- if (currentLanguage && includeSample) {
59
- newLanguage.sample = newTabValue;
60
- action.setSelectedSample(newTabValue.toLowerCase());
62
+ action.setSelectedSample(newLanguage.sample);
61
63
  }
62
64
 
63
65
  action.setLanguage(newLanguage);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "docusaurus-theme-openapi-docs",
3
3
  "description": "OpenAPI theme for Docusaurus.",
4
- "version": "0.0.0-695",
4
+ "version": "0.0.0-697",
5
5
  "license": "MIT",
6
6
  "keywords": [
7
7
  "openapi",
@@ -43,7 +43,7 @@
43
43
  "clsx": "^1.1.1",
44
44
  "copy-text-to-clipboard": "^3.1.0",
45
45
  "crypto-js": "^4.1.1",
46
- "docusaurus-plugin-openapi-docs": "0.0.0-695",
46
+ "docusaurus-plugin-openapi-docs": "0.0.0-697",
47
47
  "docusaurus-plugin-sass": "^0.2.3",
48
48
  "file-saver": "^2.0.5",
49
49
  "lodash": "^4.17.20",
@@ -68,5 +68,5 @@
68
68
  "engines": {
69
69
  "node": ">=14"
70
70
  },
71
- "gitHead": "c111297c25d9cde0cede97f07d32d368f68679b1"
71
+ "gitHead": "a6bbe786231f3938c6333379a036c614afb27029"
72
72
  }
@@ -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) => {
@@ -35,3 +35,19 @@ export function mergeCodeSampleLanguage(
35
35
  return language;
36
36
  });
37
37
  }
38
+
39
+ export function getCodeSampleSourceFromLanguage(language: Language) {
40
+ if (
41
+ language &&
42
+ language.sample &&
43
+ language.samples &&
44
+ language.samplesSources
45
+ ) {
46
+ const sampleIndex = language.samples.findIndex(
47
+ (smp) => smp === language.sample
48
+ );
49
+ return language.samplesSources[sampleIndex];
50
+ }
51
+
52
+ return "";
53
+ }
@@ -12,12 +12,12 @@ import {
12
12
  useTabs,
13
13
  } from "@docusaurus/theme-common/internal";
14
14
  import useIsBrowser from "@docusaurus/useIsBrowser";
15
- import { languageSet } from "@theme/ApiExplorer/CodeSnippets";
16
15
  import clsx from "clsx";
17
16
 
18
17
  function TabList({
19
18
  action,
20
19
  currentLanguage,
20
+ languageSet,
21
21
  includeVariant,
22
22
  includeSample,
23
23
  className,
@@ -48,16 +48,18 @@ function TabList({
48
48
  )[0];
49
49
  newLanguage.variant = newTabValue;
50
50
  action.setSelectedVariant(newTabValue.toLowerCase());
51
+ } else if (currentLanguage && includeSample) {
52
+ newLanguage = languageSet.filter(
53
+ (lang) => lang.language === currentLanguage
54
+ )[0];
55
+ newLanguage.sample = newTabValue;
56
+ action.setSelectedSample(newTabValue);
51
57
  } else {
52
58
  newLanguage = languageSet.filter(
53
59
  (lang) => lang.language === newTabValue
54
60
  )[0];
55
61
  action.setSelectedVariant(newLanguage.variant.toLowerCase());
56
- }
57
-
58
- if (currentLanguage && includeSample) {
59
- newLanguage.sample = newTabValue;
60
- action.setSelectedSample(newTabValue.toLowerCase());
62
+ action.setSelectedSample(newLanguage.sample);
61
63
  }
62
64
 
63
65
  action.setLanguage(newLanguage);