diff --git a/.changeset/itchy-crabs-explain.md b/.changeset/itchy-crabs-explain.md
new file mode 100644
index 000000000..49030b483
--- /dev/null
+++ b/.changeset/itchy-crabs-explain.md
@@ -0,0 +1,5 @@
+---
+'@gitbook/react-openapi': patch
+---
+
+Fix circularRef in schema + examples OpenAPI
diff --git a/packages/react-openapi/src/OpenAPISchema.tsx b/packages/react-openapi/src/OpenAPISchema.tsx
index 8c7c9bf5e..30c49ff55 100644
--- a/packages/react-openapi/src/OpenAPISchema.tsx
+++ b/packages/react-openapi/src/OpenAPISchema.tsx
@@ -59,6 +59,9 @@ export function OpenAPISchemaProperty(
context={context}
/>
))}
+ {parentCircularRef ? (
+
+ ) : null}
);
}
@@ -76,6 +79,9 @@ export function OpenAPISchemaProperty(
/>
) : null}
+ {parentCircularRef ? (
+
+ ) : null}
);
}
diff --git a/packages/react-openapi/src/generateSchemaExample.ts b/packages/react-openapi/src/generateSchemaExample.ts
index c00cb55d3..c8c72a99c 100644
--- a/packages/react-openapi/src/generateSchemaExample.ts
+++ b/packages/react-openapi/src/generateSchemaExample.ts
@@ -16,23 +16,27 @@ export function generateSchemaExample(
schema: OpenAPIV3.SchemaObject,
options?: GenerateSchemaExampleOptions,
): JSONValue | undefined {
- return getExampleFromSchema(schema, {
- emptyString: 'text',
- variables: {
- 'date-time': new Date().toISOString(),
- date: new Date().toISOString().split('T')[0],
- email: 'name@gmail.com',
- hostname: 'example.com',
- ipv4: '0.0.0.0',
- ipv6: '2001:0db8:85a3:0000:0000:8a2e:0370:7334',
- uri: 'https://example.com',
- uuid: '123e4567-e89b-12d3-a456-426614174000',
- binary: 'binary',
- byte: 'Ynl0ZXM=',
- password: 'password',
+ return getExampleFromSchema(
+ schema,
+ {
+ emptyString: 'text',
+ variables: {
+ 'date-time': new Date().toISOString(),
+ date: new Date().toISOString().split('T')[0],
+ email: 'name@gmail.com',
+ hostname: 'example.com',
+ ipv4: '0.0.0.0',
+ ipv6: '2001:0db8:85a3:0000:0000:8a2e:0370:7334',
+ uri: 'https://example.com',
+ uuid: '123e4567-e89b-12d3-a456-426614174000',
+ binary: 'binary',
+ byte: 'Ynl0ZXM=',
+ password: 'password',
+ },
+ ...options,
},
- ...options,
- });
+ 3, // Max depth for circular references
+ );
}
/**