UNPKG

@talend/react-components

Version:
39 lines (38 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = getPropsFrom; const NATIVE_PROPS = ['autoFocus', 'className', 'form', 'id', 'name', 'rel', 'role', 'tabIndex', 'target', 'title']; const NATIVE_PROPS_GROUPS = ['aria-', 'data-']; function extractComponentProps(Component, props) { if (!Component) { return {}; } const extractedProps = {}; Object.keys(Component.propTypes || {}).forEach(propName => { if (props[propName] !== undefined) { extractedProps[propName] = props[propName]; } }); return extractedProps; } function extractNativeProps(props) { const extractedProps = {}; Object.keys(props).forEach(propName => { if (NATIVE_PROPS.some(nativeProp => propName === nativeProp) || NATIVE_PROPS_GROUPS.some(nativeProp => propName.startsWith(nativeProp))) { extractedProps[propName] = props[propName]; } }); return extractedProps; } function getPropsFrom(Component, props) { if (!Component) { return {}; } return { ...extractNativeProps(props), ...extractComponentProps(Component, props) }; } //# sourceMappingURL=getPropsFrom.js.map