@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
54 lines (45 loc) • 1.2 kB
JavaScript
const R = require("ramda");
const { tvActionButtonContainerFields } = require("../../keys");
const {
toSnakeCase,
generateFieldsFromDefaultsWithoutPrefixedLabel,
} = require("../../_internals");
const { fieldsGroup } = require("../../utils");
const appendConditionalField = (prefix) => (configs) => {
const append = (condition, label) => (config) => {
if (!condition) {
return config;
}
return {
...config,
conditional_fields: [
...(config.conditional_fields || []),
{
key: `styles/${toSnakeCase(label)}_buttons_enabled`,
condition_value: true,
},
],
};
};
return configs.map((config) => {
return append(!R.endsWith("_buttons_enabled", config.key), prefix)(config);
});
};
function tvActionButtonsContainer({ label, description, defaults }) {
const config = fieldsGroup(
label,
description,
generateFieldsFromDefaultsWithoutPrefixedLabel(
label,
defaults,
tvActionButtonContainerFields(defaults["position"])
)
);
return {
...config,
fields: appendConditionalField(label)(config.fields),
};
}
module.exports = {
tvActionButtonsContainer,
};