UNPKG

swiftui-react-native

Version:

A React Native component library inspired by SwiftUI

96 lines 3.37 kB
"use strict"; 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