@gravity-ui/uikit
Version:
Gravity UI base styling and components
27 lines (26 loc) • 970 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useDefaultProps = useDefaultProps;
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const PrivateDefaultPropsProvider_1 = require("./PrivateDefaultPropsProvider.js");
function useDefaultProps(componentName, componentProps) {
const ctx = React.useContext(PrivateDefaultPropsProvider_1.PrivateDefaultPropsContext);
const defaultProps = ctx[componentName];
if (!defaultProps) {
return componentProps;
}
const cleanedProps = {};
for (const k in componentProps) {
if (componentProps[k] !== undefined) {
cleanedProps[k] = componentProps[k];
}
}
return [defaultProps, cleanedProps].reduce((acc, props) => {
for (const [key, value] of Object.entries(props)) {
acc[key] = value;
}
return acc;
}, {});
}
//# sourceMappingURL=useDefaultProps.js.map