@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
52 lines (40 loc) • 1.02 kB
JavaScript
const R = require("ramda");
const { TV_FONT_KEY_DATA } = require("../../keys");
const {
toSnakeCase,
getConditionalField,
capitalize,
} = require("../../_internals");
function tvActionButtonLabel(label, defaults) {
if (R.isNil(defaults)) {
return [];
}
const keyName = R.compose(toSnakeCase, R.toLower)(label);
const { fields: fieldsWithEnable } = getConditionalField(
label,
defaults,
"styles/"
);
return R.compose(
R.reduce((fields, key) => {
if (key === "enable") return fields;
const { name, type, options } = TV_FONT_KEY_DATA[key];
const keySuffix = toSnakeCase(name);
const fieldProps = {
label: capitalize(name),
key: `${keyName}_${keySuffix}`,
type,
initial_value: defaults[key],
};
if (options) {
fieldProps.options = options;
}
fields.push(fieldProps);
return fields;
}, fieldsWithEnable),
R.keys
)(defaults);
}
module.exports = {
tvActionButtonLabel,
};