@aomi/react-native-components
Version:
React Native Components
22 lines (21 loc) • 759 B
JavaScript
/* eslint-disable no-restricted-syntax */
export function getThemeProps(params) {
const { theme, name, props } = params;
if (!theme ||
!theme.components ||
!theme.components[name] ||
!theme.components[name].defaultProps) {
return props;
}
const output = { ...props };
// Resolve default props, code borrow from React source.
// https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221
const defaultProps = theme.components[name].defaultProps;
let propName;
for (propName in defaultProps) {
if (output[propName] === undefined) {
output[propName] = defaultProps[propName];
}
}
return output;
}