Skip to content

Commit 7d8fa74

Browse files
committed
fix: resolve api explorer type errors
1 parent 9fb35c3 commit 7d8fa74

File tree

9 files changed

+27
-27
lines changed

9 files changed

+27
-27
lines changed

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,9 @@ function CodeSnippets({
141141
return defaultLang[0] ?? mergedLangs[0];
142142
});
143143
const [codeText, setCodeText] = useState<string>("");
144-
const [codeSampleCodeText, setCodeSampleCodeText] = useState<
145-
string | (() => string)
146-
>(() => getCodeSampleSourceFromLanguage(language));
144+
const [codeSampleCodeText, setCodeSampleCodeText] = useState<string>(() =>
145+
getCodeSampleSourceFromLanguage(language)
146+
);
147147

148148
useEffect(() => {
149149
if (language && !!language.sample) {
@@ -273,7 +273,7 @@ function CodeSnippets({
273273
setSelectedSample: setSelectedSample,
274274
}}
275275
includeSample={true}
276-
currentLanguage={lang.language}
276+
currentLanguage={lang}
277277
defaultValue={selectedSample}
278278
languageSet={mergedLangs}
279279
lazy
@@ -314,7 +314,7 @@ function CodeSnippets({
314314
setSelectedVariant: setSelectedVariant,
315315
}}
316316
includeVariant={true}
317-
currentLanguage={lang.language}
317+
currentLanguage={lang}
318318
defaultValue={selectedVariant}
319319
languageSet={mergedLangs}
320320
lazy

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,17 @@ import {
1515
} from "@docusaurus/theme-common/internal";
1616
import { TabItemProps } from "@docusaurus/theme-common/lib/utils/tabsUtils";
1717
import useIsBrowser from "@docusaurus/useIsBrowser";
18-
import { Language } from "@theme/ApiExplorer/CodeSnippets";
1918
import clsx from "clsx";
2019

20+
import { Language } from "../CodeSnippets/code-snippets-types";
21+
2122
export interface Props {
2223
action: {
2324
[key: string]: React.Dispatch<any>;
2425
};
25-
currentLanguage: Language;
26+
currentLanguage?: Language;
2627
languageSet: Language[];
27-
includeVariant: boolean;
28+
includeVariant?: boolean;
2829
}
2930

3031
export interface CodeTabsProps extends Props, TabProps {
@@ -94,13 +95,13 @@ function TabList({
9495
let newLanguage: Language;
9596
if (currentLanguage && includeVariant) {
9697
newLanguage = languageSet.filter(
97-
(lang: Language) => lang.language === currentLanguage
98+
(lang: Language) => lang.language === currentLanguage.language
9899
)[0];
99100
newLanguage.variant = newTabValue;
100101
action.setSelectedVariant(newTabValue.toLowerCase());
101102
} else if (currentLanguage && includeSample) {
102103
newLanguage = languageSet.filter(
103-
(lang: Language) => lang.language === currentLanguage
104+
(lang: Language) => lang.language === currentLanguage.language
104105
)[0];
105106
newLanguage.sample = newTabValue;
106107
action.setSelectedSample(newTabValue);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function ContentType() {
2727
<FormSelect
2828
value={value}
2929
options={options}
30-
onChange={(e: React.ChangeEvent<HTMLInputElement>) =>
30+
onChange={(e: React.ChangeEvent<HTMLSelectElement>) =>
3131
dispatch(setContentType(e.target.value))
3232
}
3333
/>

packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function ArrayItem({
3030
return (
3131
<FormSelect
3232
options={["---", "true", "false"]}
33-
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
33+
onChange={(e: React.ChangeEvent<HTMLSelectElement>) => {
3434
const val = e.target.value;
3535
onChange(val === "---" ? undefined : val);
3636
}}
@@ -87,15 +87,16 @@ export default function ParamArrayFormItem({ param }: ParamProps) {
8787
}, [items]);
8888

8989
useEffect(() => {
90-
if (param.schema?.example?.length > 0) {
91-
const examplesWithIds = param.schema.example.map((item: any) => ({
90+
const example = param.schema?.example;
91+
if (Array.isArray(example) && example.length > 0) {
92+
const examplesWithIds = example.map((item: any) => ({
9293
id: nanoid(),
9394
value: item.toString(),
9495
}));
9596

9697
setItems(examplesWithIds);
9798
}
98-
}, [param.schema.example, param.schema.length]);
99+
}, [param.schema?.example]);
99100

100101
function handleDeleteItem(itemToDelete: { id: string }) {
101102
return () => {
@@ -123,7 +124,7 @@ export default function ParamArrayFormItem({ param }: ParamProps) {
123124
control={control}
124125
rules={{ required: param.required ? "This field is required" : false }}
125126
name="paramArray"
126-
render={({ field: { onChange, name } }) => (
127+
render={({ field: { onChange } }) => (
127128
<>
128129
{items.map((item) => (
129130
<div key={item.id} style={{ display: "flex" }}>

packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ export default function ParamBooleanFormItem({ param }: ParamProps) {
3333
control={control}
3434
rules={{ required: param.required ? "This field is required" : false }}
3535
name="paramBoolean"
36-
render={({ field: { onChange, name } }) => (
36+
render={({ field: { onChange } }) => (
3737
<FormSelect
38-
name={name}
3938
options={["---", "true", "false"]}
40-
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
39+
onChange={(e: React.ChangeEvent<HTMLSelectElement>) => {
4140
const val = e.target.value;
4241
dispatch(
4342
setParam({

packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,11 @@ export default function ParamMultiSelectFormItem({ param }: ParamProps) {
6363
control={control}
6464
rules={{ required: param.required ? "This field is required" : false }}
6565
name="paramMultiSelect"
66-
render={({ field: { onChange, name } }) => (
66+
render={({ field: { onChange } }) => (
6767
<FormMultiSelect
6868
options={options as string[]}
69-
name={name}
7069
onChange={(e: any) => handleChange(e, onChange)}
71-
showErrors={showErrorMessage}
70+
showErrors={!!showErrorMessage}
7271
/>
7372
)}
7473
/>

packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ export default function ParamSelectFormItem({ param }: ParamProps) {
3535
control={control}
3636
rules={{ required: param.required ? "This field is required" : false }}
3737
name="paramSelect"
38-
render={({ field: { onChange, name } }) => (
38+
render={({ field: { onChange } }) => (
3939
<FormSelect
4040
options={["---", ...(options as string[])]}
41-
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
41+
onChange={(e: React.ChangeEvent<HTMLSelectElement>) => {
4242
const val = e.target.value;
4343
dispatch(
4444
setParam({

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ function Server() {
7272
<FormItem>
7373
<FormSelect
7474
options={options.map((s: any) => s.url)}
75-
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
75+
onChange={(e: React.ChangeEvent<HTMLSelectElement>) => {
7676
dispatch(
7777
setServer(
7878
JSON.stringify(
@@ -94,7 +94,7 @@ function Server() {
9494
<FormItem label={key}>
9595
<FormSelect
9696
options={value.variables[key].enum}
97-
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
97+
onChange={(e: React.ChangeEvent<HTMLSelectElement>) => {
9898
dispatch(
9999
setServerVariable(
100100
JSON.stringify({ key, value: e.target.value })

packages/docusaurus-theme-openapi-docs/src/theme/ApiItem/Layout/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import React, { type JSX } from "react";
99

1010
import { useDoc } from "@docusaurus/plugin-content-docs/client";
1111
import { useWindowSize } from "@docusaurus/theme-common";
12-
import type { Props } from "@theme/ApiItem/Layout";
1312
import ContentVisibility from "@theme/ContentVisibility";
1413
import DocBreadcrumbs from "@theme/DocBreadcrumbs";
1514
import DocItemContent from "@theme/DocItem/Content";
1615
import DocItemFooter from "@theme/DocItem/Footer";
16+
import type { Props } from "@theme/DocItem/Layout";
1717
import DocItemPaginator from "@theme/DocItem/Paginator";
1818
import DocItemTOCDesktop from "@theme/DocItem/TOC/Desktop";
1919
import DocItemTOCMobile from "@theme/DocItem/TOC/Mobile";

0 commit comments

Comments
 (0)