diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index 26ac238c..316bdd0f 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -101,6 +101,12 @@ If set to `true`, uses the mutated request returned from a requestInterceptor to ⚠️ This prop is currently only applied once, on mount. Changes to this prop's value will not be propagated to the underlying Swagger UI instance. A future version of this module will remove this limitation, and the change will not be considered a breaking change. +#### `presets`: PropTypes.arrayOf(PropTypes.func), + +An array of functions that augment and modify Swagger UI's functionality. See Swagger UI's [Plugin API](https://github.com/swagger-api/swagger-ui/blob/master/docs/customization/plugin-api.md) for more details. + +⚠️ This prop is currently only applied once, on mount. Changes to this prop's value will not be propagated to the underlying Swagger UI instance. A future version of this module will remove this limitation, and the change will not be considered a breaking change. + ## Limitations * Not all configuration bindings are available. diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js index 361c08bf..71af7359 100644 --- a/flavors/swagger-ui-react/index.js +++ b/flavors/swagger-ui-react/index.js @@ -1,7 +1,6 @@ import React from "react" import PropTypes from "prop-types" -import swaggerUIConstructor from "./swagger-ui" - +import swaggerUIConstructor, {presets} from "./swagger-ui" export default class SwaggerUI extends React.Component { constructor (props) { super(props) @@ -14,6 +13,8 @@ export default class SwaggerUI extends React.Component { plugins: this.props.plugins, spec: this.props.spec, url: this.props.url, + defaultModelsExpandDepth: this.props.defaultModelsExpandDepth, + presets: [presets.apis,...this.props.presets], requestInterceptor: this.requestInterceptor, responseInterceptor: this.responseInterceptor, onComplete: this.onComplete, @@ -90,12 +91,16 @@ SwaggerUI.propTypes = { supportedSubmitMethods: PropTypes.arrayOf( PropTypes.oneOf(['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace']) ), - defaultModelExpandDepth: PropTypes.number, plugins: PropTypes.arrayOf(PropTypes.object), displayOperationId: PropTypes.bool, showMutatedRequest: PropTypes.bool, + defaultModelExpandDepth: PropTypes.number, + presets: PropTypes.arrayOf(PropTypes.func), } SwaggerUI.defaultProps = { supportedSubmitMethods: ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'], + docExpansion: "list", + defaultModelsExpandDepth: 1, + presets: [] }