@grandlinex/react-components
Version:
60 lines (59 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isCnxInput = isCnxInput;
exports.classN = classN;
exports.styleM = styleM;
exports.renderIcon = renderIcon;
const react_icons_1 = require("@grandlinex/react-icons");
const util_1 = require("../../util");
function isCnxInput(obj) {
return (Array.isArray(obj) &&
obj.length >= 2 &&
obj.length <= 3 &&
typeof obj[0] === 'boolean' &&
typeof obj[1] === 'string' &&
(typeof obj[2] === 'string' || obj.length === 2));
}
function classN(className, merge) {
const out = [];
if (!className && !merge) {
return undefined;
}
if (isCnxInput(className) || typeof className === 'string') {
out.push(className);
}
else if (className) {
out.push(...className);
}
if (isCnxInput(merge) || typeof merge === 'string') {
out.push(merge);
}
else if (merge) {
console.log('merge', merge);
out.push(...merge);
console.log('out', out);
}
return (0, util_1.cnx)(...out);
}
function styleM(style, merged) {
let out = {};
if (merged) {
out = {
...merged,
};
}
if (style) {
out = {
...style,
};
}
return out;
}
function renderIcon(icon, size = react_icons_1.ISize.MD) {
if (!icon)
return null;
if (typeof icon === 'string') {
return (0, react_icons_1.getIcon)(icon)({ size });
}
return icon;
}