refactor(oas31): change License component to be smart (#8476)

Refs #8474
This commit is contained in:
Vladimír Gorej
2023-03-16 15:54:59 +01:00
committed by GitHub
parent 8b274414ab
commit 990d1f288e
7 changed files with 98 additions and 50 deletions

View File

@@ -0,0 +1,37 @@
/**
* @prettier
*/
import { createSelector } from "reselect"
import { safeBuildUrl } from "core/utils/url"
export const selectLicenseNameField = () => (system) => {
return system.specSelectors.license().get("name", "License")
}
export const selectLicenseUrlField = () => (system) => {
return system.specSelectors.license().get("url")
}
export const selectLicenseIdentifierField = () => (system) => {
return system.specSelectors.license().get("identifier")
}
export const makeSelectLicenseUrl = (system) =>
createSelector(
() => system.specSelectors.url(),
() => system.oas3Selectors.selectedServer(),
() => system.oas31Selectors.selectLicenseUrlField(),
() => system.oas31Selectors.selectLicenseIdentifierField(),
(specUrl, selectedServer, url, identifier) => {
if (url) {
return safeBuildUrl(url, specUrl, { selectedServer })
}
if (identifier) {
return `https://spdx.org/licenses/${identifier}.html`
}
return undefined
}
)