Skip to content

feat: dynamically update request body when anyOf/oneOf tab changes (#1235)#1287

Merged
sserrata merged 1 commit intomainfrom
feature/dynamic-anyof-oneof-body
Jan 26, 2026
Merged

feat: dynamically update request body when anyOf/oneOf tab changes (#1235)#1287
sserrata merged 1 commit intomainfrom
feature/dynamic-anyof-oneof-body

Conversation

@sserrata
Copy link
Member

When a schema has anyOf or oneOf, the request body editor now updates dynamically when the user selects a different option in the schema tabs.

  • Add SchemaSelection Redux slice to track selected anyOf/oneOf indices
  • Add resolveSchemaWithSelections utility to resolve schema based on selections
  • Update Schema component to dispatch selection changes when tabs are clicked
  • Update Body component to regenerate examples when selection changes
  • Add onChange callback to SchemaTabs component

…1235)

When a schema has anyOf or oneOf, the request body editor now updates
dynamically when the user selects a different option in the schema tabs.

- Add SchemaSelection Redux slice to track selected anyOf/oneOf indices
- Add resolveSchemaWithSelections utility to resolve schema based on selections
- Update Schema component to dispatch selection changes when tabs are clicked
- Update Body component to regenerate examples when selection changes
- Add onChange callback to SchemaTabs component
@sserrata sserrata self-assigned this Jan 26, 2026
@sserrata sserrata added the enhancement New feature or request label Jan 26, 2026
@github-actions
Copy link

Size Change: 0 B

Total Size: 2.17 MB

ℹ️ View Unchanged
Filename Size
demo/.docusaurus/codeTranslations.json 2 B
demo/.docusaurus/docusaurus.config.mjs 14.7 kB
demo/.docusaurus/globalData.json 60.7 kB
demo/.docusaurus/i18n.json 372 B
demo/.docusaurus/registry.js 87.9 kB
demo/.docusaurus/routes.js 83.1 kB
demo/.docusaurus/routesChunkNames.json 34.4 kB
demo/.docusaurus/site-metadata.json 1.51 kB
demo/build/assets/css/styles.********.css 163 kB
demo/build/assets/js/main.********.js 644 kB
demo/build/assets/js/runtime~main.********.js 21 kB
demo/build/index.html 96.8 kB
demo/build/petstore/add-pet/index.html 29.3 kB
demo/build/petstore/create-user/index.html 24 kB
demo/build/petstore/create-users-with-array-input/index.html 24.1 kB
demo/build/petstore/create-users-with-list-input/index.html 24.1 kB
demo/build/petstore/delete-order/index.html 23.8 kB
demo/build/petstore/delete-pet/index.html 24.1 kB
demo/build/petstore/delete-user/index.html 24.3 kB
demo/build/petstore/find-pets-by-status/index.html 24.8 kB
demo/build/petstore/find-pets-by-tags/index.html 25.4 kB
demo/build/petstore/get-inventory/index.html 23.1 kB
demo/build/petstore/get-order-by-id/index.html 24.1 kB
demo/build/petstore/get-pet-by-id/index.html 24.9 kB
demo/build/petstore/get-user-by-name/index.html 24.4 kB
demo/build/petstore/login-user/index.html 24.9 kB
demo/build/petstore/logout-user/index.html 23.7 kB
demo/build/petstore/new-pet/index.html 24.3 kB
demo/build/petstore/pet/index.html 22.5 kB
demo/build/petstore/place-order/index.html 23.3 kB
demo/build/petstore/schemas/apiresponse/index.html 24.6 kB
demo/build/petstore/schemas/cat/index.html 38.8 kB
demo/build/petstore/schemas/category/index.html 25.7 kB
demo/build/petstore/schemas/dog/index.html 39 kB
demo/build/petstore/schemas/honeybee/index.html 39.1 kB
demo/build/petstore/schemas/id/index.html 22.7 kB
demo/build/petstore/schemas/order/index.html 26.8 kB
demo/build/petstore/schemas/pet/index.html 38.6 kB
demo/build/petstore/schemas/tag/index.html 24.1 kB
demo/build/petstore/schemas/user/index.html 46.4 kB
demo/build/petstore/store/index.html 21.5 kB
demo/build/petstore/subscribe-to-the-store-events/index.html 30.2 kB
demo/build/petstore/swagger-petstore-yaml/index.html 30.2 kB
demo/build/petstore/update-pet-with-form/index.html 24.3 kB
demo/build/petstore/update-pet/index.html 24.7 kB
demo/build/petstore/update-user/index.html 24.3 kB
demo/build/petstore/upload-file/index.html 24.1 kB
demo/build/petstore/user/index.html 22.2 kB

compressed-size-action

@github-actions
Copy link

Visit the preview URL for this PR (updated for commit e0844f6):

https://docusaurus-openapi-36b86--pr1287-v10vazis.web.app

(expires Wed, 25 Feb 2026 17:54:13 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: bf293780ee827f578864d92193b8c2866acd459f

@sserrata sserrata merged commit 6ebffbb into main Jan 26, 2026
10 checks passed
@sserrata sserrata deleted the feature/dynamic-anyof-oneof-body branch January 26, 2026 18:27
sserrata added a commit that referenced this pull request Jan 27, 2026
Major performance improvement: The new `externalJsonProps` option (enabled by default) dramatically reduces build times and bundle sizes by externalizing large JSON props from MDX files.

- New `externalJsonProps` plugin option significantly improves build performance
- Sticky positioning for the API Explorer right panel improves UX on long API pages
- Dynamic request body updates when switching anyOf/oneOf tabs

#### 🚀 New Feature

- feat(plugin): add externalJsonProps option (enabled by default) to improve build performance (#1279)
- feat(theme): add sticky positioning to API Explorer right panel (#1288)
- feat: dynamically update request body when anyOf/oneOf tab changes (#1287)

#### 🐛 Bug Fix

- fix: render inline enum values in anyOf schemas (#1286)
- fix: generate correct examples for different request content types (#1284)

#### 🏠 Refactoring

- refactor: change plugin and theme types.ts to types.d.ts (#1281)
- refactor: externalize using create() and drop size threshold requirement (#1280)

#### 📝 Documentation

- docs: sync README and intro.mdx with plugin docs

#### 🤖 Dependencies

- chore(deps): bump lodash from 4.17.21 to 4.17.23 (#1282)

#### Committers: 3

- dependabot[bot]
- Ollie Monk
- Steven Serrata
@sserrata sserrata mentioned this pull request Jan 27, 2026
sserrata added a commit that referenced this pull request Jan 27, 2026
Major performance improvement: The new `externalJsonProps` option (enabled by default) dramatically reduces build times and bundle sizes by externalizing large JSON props from MDX files.

- New `externalJsonProps` plugin option significantly improves build performance
- Sticky positioning for the API Explorer right panel improves UX on long API pages
- Dynamic request body updates when switching anyOf/oneOf tabs

#### 🚀 New Feature

- feat(plugin): add externalJsonProps option (enabled by default) to improve build performance (#1279)
- feat(theme): add sticky positioning to API Explorer right panel (#1288)
- feat: dynamically update request body when anyOf/oneOf tab changes (#1287)

#### 🐛 Bug Fix

- fix: render inline enum values in anyOf schemas (#1286)
- fix: generate correct examples for different request content types (#1284)

#### 🏠 Refactoring

- refactor: change plugin and theme types.ts to types.d.ts (#1281)
- refactor: externalize using create() and drop size threshold requirement (#1280)

#### 📝 Documentation

- docs: sync README and intro.mdx with plugin docs

#### 🤖 Dependencies

- chore(deps): bump lodash from 4.17.21 to 4.17.23 (#1282)

#### Committers: 3

- dependabot[bot]
- Ollie Monk
- Steven Serrata
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant