Skip to content

Commit e5fdfb4

Browse files
fix select variant update
1 parent 7e84b6e commit e5fdfb4

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

demo/examples/petstore.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ paths:
147147
Console.WriteLine(response.getRawResponse());
148148
}
149149
- lang: PHP
150+
label: Custom
150151
source: |
151152
$form = new \PetStore\Entities\Pet();
152153
$form->setPetType("Dog");

packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/index.tsx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -281,15 +281,19 @@ function CodeSnippets({ postman, codeSamples }: Props) {
281281
mergedLangs,
282282
]);
283283

284+
// no dependencies was intentionlly set for this particular hook. it's safe as long as if conditions are set
285+
// eslint-disable-next-line react-hooks/exhaustive-deps
284286
useEffect(function onSelectedVariantUpdate() {
285-
if (
286-
language.source &&
287-
selectedVariant === language.codeSampleLanguage.toLowerCase()
288-
) {
289-
console.log("entered");
287+
// selected a code sample variant
288+
if (selectedVariant === language.codeSampleLanguage.toLowerCase()) {
289+
const sample = codeSamples.find(
290+
({ lang }) => lang === language.codeSampleLanguage
291+
);
290292

291-
setCodeText(language.source);
292-
return;
293+
if (sample) {
294+
setCodeText(sample.source);
295+
return;
296+
}
293297
}
294298

295299
if (selectedVariant && selectedVariant !== language.variant) {

packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets/languages.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export function mergeCodeSampleLanguage(
1818

1919
if (sample) {
2020
const label = sample.label || sample.lang;
21-
const variant = (sample.label || sample.lang).toLowerCase();
21+
const variant = sample.lang.toLowerCase();
2222
const source = sample.source;
2323

2424
return {

0 commit comments

Comments
 (0)