@kelvininc/ui-components
Version:
Kelvin UI Components
20 lines (19 loc) • 859 B
JavaScript
import { isEmpty } from "lodash-es";
export const getDropdownDisplayIcon = (selectedOption, flattenOptions = {}) => {
if (!selectedOption || !flattenOptions[selectedOption]) {
return;
}
const option = flattenOptions[selectedOption];
return option.icon;
};
export const getDropdownCustomCss = (selectedOption, flattenOptions = {}) => {
if (!selectedOption || !flattenOptions[selectedOption]) {
return;
}
const option = flattenOptions[selectedOption];
return option.customStyle;
};
export const buildSingleSelectOptions = (options = {}) => Object.values(options).reduce((accumulator, option) => {
accumulator[option.value] = Object.assign(Object.assign({}, option), { selectable: isEmpty(option.options), options: buildSingleSelectOptions(option.options), togglable: false });
return accumulator;
}, {});