diff --git a/.changeset/silent-donuts-love.md b/.changeset/silent-donuts-love.md
new file mode 100644
index 000000000..8f145edc0
--- /dev/null
+++ b/.changeset/silent-donuts-love.md
@@ -0,0 +1,5 @@
+---
+'@gitbook/react-openapi': patch
+---
+
+Fix crash when `example` is undefined for a response
diff --git a/packages/react-openapi/src/OpenAPICodeSample.tsx b/packages/react-openapi/src/OpenAPICodeSample.tsx
index d26a6f3b8..62628671e 100644
--- a/packages/react-openapi/src/OpenAPICodeSample.tsx
+++ b/packages/react-openapi/src/OpenAPICodeSample.tsx
@@ -69,11 +69,19 @@ export function OpenAPICodeSample(props: {
(['x-custom-examples', 'x-code-samples', 'x-codeSamples'] as const).forEach((key) => {
const customSamples = data.operation[key];
if (customSamples && Array.isArray(customSamples)) {
- customCodeSamples = customSamples.map((sample) => ({
- key: `redocly-${sample.lang}`,
- label: sample.label,
- body: ,
- }));
+ customCodeSamples = customSamples
+ .filter((sample) => {
+ return (
+ typeof sample.label === 'string' &&
+ typeof sample.source === 'string' &&
+ typeof sample.lang === 'string'
+ );
+ })
+ .map((sample) => ({
+ key: `redocly-${sample.lang}`,
+ label: sample.label,
+ body: ,
+ }));
}
});
diff --git a/packages/react-openapi/src/OpenAPIResponseExample.tsx b/packages/react-openapi/src/OpenAPIResponseExample.tsx
index 9aa5a2690..e88434d4f 100644
--- a/packages/react-openapi/src/OpenAPIResponseExample.tsx
+++ b/packages/react-openapi/src/OpenAPIResponseExample.tsx
@@ -53,6 +53,10 @@ export function OpenAPIResponseExample(props: {
}
const example = generateSchemaExample(schema);
+ if (example === undefined) {
+ return null;
+ }
+
return {
key: `${response[0]}`,
label: `${response[0]}`,