47 lines
1014 B
JavaScript
47 lines
1014 B
JavaScript
import { normalizeCondition, matchValuesWithCondition } from 'match-conditions'
|
|
|
|
export const capitalizeFirstLetter = str => {
|
|
str = str == null ? '' : String(str)
|
|
return str.charAt(0).toUpperCase() + str.slice(1)
|
|
}
|
|
|
|
export const getOptionLabelFor = ({ id, option, values, renderingConfig }) => {
|
|
let maybeLabel =
|
|
Object.keys(option).indexOf('label') === -1
|
|
? capitalizeFirstLetter(id).replace(/\_|\-/g, ' ')
|
|
: option.label
|
|
|
|
if (maybeLabel !== maybeLabel.toString()) {
|
|
maybeLabel =
|
|
Object.keys(maybeLabel).reduce((approvedLabel, currentLabel) => {
|
|
if (approvedLabel) {
|
|
return approvedLabel
|
|
}
|
|
|
|
if (
|
|
matchValuesWithCondition(
|
|
normalizeCondition(maybeLabel[currentLabel]),
|
|
values
|
|
)
|
|
) {
|
|
return currentLabel
|
|
}
|
|
|
|
return approvedLabel
|
|
}, null) || Object.keys(maybeLabel)[0]
|
|
}
|
|
|
|
/**
|
|
* Fuck JS
|
|
*/
|
|
if (maybeLabel === '') {
|
|
maybeLabel = true
|
|
}
|
|
|
|
if (renderingConfig && !renderingConfig.label) {
|
|
maybeLabel = false
|
|
}
|
|
|
|
return maybeLabel
|
|
}
|