Skip to content

Commit a3761d0

Browse files
committed
fix: display generated code snippets
1 parent ffc1d7c commit a3761d0

File tree

1 file changed

+12
-51
lines changed
  • packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/CodeSnippets

1 file changed

+12
-51
lines changed

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

Lines changed: 12 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)