refactor(oas31): use OpenAPI 3.1 specific component wrapper util (#8503)

This commit is contained in:
Vladimír Gorej
2023-03-23 10:55:41 +01:00
committed by GitHub
parent 16224263d1
commit e1816a5937
5 changed files with 47 additions and 34 deletions

View File

@@ -1,6 +1,7 @@
/** /**
* @prettier * @prettier
*/ */
import React from "react"
export const isOAS31 = (jsSpec) => { export const isOAS31 = (jsSpec) => {
const oasVersion = jsSpec.get("openapi") const oasVersion = jsSpec.get("openapi")
@@ -70,3 +71,20 @@ export const createSystemSelector =
? selectedValue(system) ? selectedValue(system)
: selectedValue : selectedValue
} }
/* eslint-disable react/jsx-filename-extension */
export const createOnlyOAS31ComponentWrapper =
(Component) => (Original, system) => (props) => {
if (system.specSelectors.isOAS31()) {
return (
<Component
{...props}
originalComponent={Original}
getSystem={system.getSystem}
/>
)
}
return <Original {...props} />
}
/* eslint-enable react/jsx-filename-extension */

View File

@@ -3,14 +3,13 @@
*/ */
import React from "react" import React from "react"
const ContactWrapper = (Original, system) => (props) => { import { createOnlyOAS31ComponentWrapper } from "../fn"
if (system.specSelectors.isOAS31()) {
const OAS31Contact = system.getComponent("OAS31Contact", true)
return <OAS31Contact /> const ContactWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => {
} const system = getSystem()
const OAS31Contact = system.getComponent("OAS31Contact", true)
return <Original {...props} /> return <OAS31Contact />
} })
export default ContactWrapper export default ContactWrapper

View File

@@ -3,14 +3,13 @@
*/ */
import React from "react" import React from "react"
const InfoWrapper = (Original, system) => (props) => { import { createOnlyOAS31ComponentWrapper } from "../fn"
if (system.specSelectors.isOAS31()) {
const OAS31Info = system.getComponent("OAS31Info", true)
return <OAS31Info /> const InfoWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => {
} const system = getSystem()
const OAS31Info = system.getComponent("OAS31Info", true)
return <Original {...props} /> return <OAS31Info />
} })
export default InfoWrapper export default InfoWrapper

View File

@@ -3,14 +3,13 @@
*/ */
import React from "react" import React from "react"
const LicenseWrapper = (Original, system) => (props) => { import { createOnlyOAS31ComponentWrapper } from "../fn"
if (system.specSelectors.isOAS31()) {
const OAS31License = system.getComponent("OAS31License", true)
return <OAS31License /> const LicenseWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => {
} const system = getSystem()
const OAS31License = system.getComponent("OAS31License", true)
return <Original {...props} /> return <OAS31License />
} })
export default LicenseWrapper export default LicenseWrapper

View File

@@ -3,19 +3,17 @@
*/ */
import React from "react" import React from "react"
const VersionStampWrapper = (Original, system) => (props) => { import { createOnlyOAS31ComponentWrapper } from "../fn"
if (system.specSelectors.isOAS31()) {
return (
<span>
<Original {...props} />
<small className="version-stamp">
<pre className="version">OAS 3.1</pre>
</small>
</span>
)
}
return <Original {...props} /> const VersionStampWrapper = createOnlyOAS31ComponentWrapper(
} ({ originalComponent: Original, ...restProps }) => (
<span>
<Original {...restProps} />
<small className="version-stamp">
<pre className="version">OAS 3.1</pre>
</small>
</span>
)
)
export default VersionStampWrapper export default VersionStampWrapper