@crossed/styled
Version:
A universal & performant styling library for React Native, Next.js & React
27 lines (26 loc) • 782 B
JavaScript
import { createMethods } from "./createMethods";
import { merge } from "ts-deepmerge";
const composeStyles = (...styles) => {
let stylesNative = {};
const stylesVerified = styles.flat(Infinity).reduce((acc, e) => {
if (!e)
return acc;
if ("original" in e && e.original) {
acc.push(e.original);
}
if ("stylesParent" in e && e.stylesParent) {
stylesNative = { ...stylesNative, ...e.stylesParent };
return acc;
}
if (typeof e !== "function" && typeof e === "object" && !e.style) {
stylesNative = { ...stylesNative, ...e };
}
return acc;
}, []);
const styleMerged = merge(...stylesVerified);
return createMethods(styleMerged, stylesNative);
};
export {
composeStyles
};
//# sourceMappingURL=composeStyles.js.map