swiftui-react-native
Version:
A React Native component library inspired by SwiftUI
96 lines • 3.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSizeFromModifiers = exports.mapToNativeModifiers = exports.getExperimentalPrivateModifiers = void 0;
function getExperimentalPrivateModifiers(modifiers) {
const experimentalPrivateMods = modifiers
._modifiers;
if (experimentalPrivateMods) {
return experimentalPrivateMods.reduce((styles, mod) => {
return { ...styles, ...mod };
}, {});
}
else {
return modifiers;
}
}
exports.getExperimentalPrivateModifiers = getExperimentalPrivateModifiers;
/**
* Maps a modifiers object or function to an array of native modifiers, with
* the order being preserved.
*/
function mapToNativeModifiers(modifiers) {
const experimentalPrivateMods = modifiers
._modifiers;
if (experimentalPrivateMods)
return experimentalPrivateMods;
if (Array.isArray(modifiers))
return modifiers;
let result = [];
result = Object.keys(modifiers || {}).map((key) => {
return { [key]: modifiers[key] };
});
return result;
}
exports.mapToNativeModifiers = mapToNativeModifiers;
function getSizeFromModifiers(modifiers, defaultSize) {
modifiers = getExperimentalPrivateModifiers(modifiers);
const styles = {};
let width = modifiers.frame?.width || defaultSize?.width;
let height = modifiers.frame?.height || defaultSize?.height;
let minWidth = modifiers.frame?.minWidth;
let minHeight = modifiers.frame?.minHeight;
let maxWidth = modifiers.frame?.maxWidth;
let maxHeight = modifiers.frame?.maxHeight;
if (width) {
styles.width = width;
}
if (height) {
styles.height = height;
}
if (minWidth) {
styles.minWidth = minWidth === 'infinity' ? '100%' : minWidth;
}
if (minHeight) {
styles.minHeight = minHeight === 'infinity' ? '100%' : minHeight;
}
if (maxWidth) {
styles.maxWidth = maxWidth === 'infinity' ? '100%' : maxWidth;
styles.width = maxWidth === 'infinity' ? '100%' : maxWidth;
}
if (maxHeight) {
styles.maxHeight = maxHeight === 'infinity' ? '100%' : maxHeight;
styles.height = maxHeight === 'infinity' ? '100%' : maxHeight;
}
if (typeof modifiers.padding === 'number') {
styles.padding = modifiers.padding;
}
else if (typeof modifiers.padding === 'boolean') {
styles.padding = modifiers.padding ? 8 : 0;
}
else {
if (modifiers.padding?.all) {
styles.padding = modifiers.padding.all;
}
if (modifiers.padding?.horizontal) {
styles.paddingHorizontal = modifiers.padding.horizontal;
}
if (modifiers.padding?.vertical) {
styles.paddingVertical = modifiers.padding.vertical;
}
if (modifiers.padding?.top) {
styles.paddingTop = modifiers.padding.top;
}
if (modifiers.padding?.bottom) {
styles.paddingBottom = modifiers.padding.bottom;
}
if (modifiers.padding?.leading) {
styles.paddingLeft = modifiers.padding.leading;
}
if (modifiers.padding?.trailing) {
styles.paddingRight = modifiers.padding.trailing;
}
}
return styles;
}
exports.getSizeFromModifiers = getSizeFromModifiers;
//# sourceMappingURL=index.js.map