UNPKG

@hitachivantara/uikit-react-utils

Version:
41 lines (40 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const react = require("react"); const useCss = require("./useCss.cjs"); const useTheme = require("./useTheme.cjs"); function filterProps(props) { return Object.keys(props).reduce((acc, key) => { if (props[key] !== void 0) { acc[key] = props[key]; } return acc; }, {}); } function useDefaultProps(componentName, props) { const { activeTheme } = useTheme.useTheme(); const { css, cx } = useCss.useCss(); const themeDefaultProps = activeTheme?.components?.[componentName]; const classes = react.useMemo(() => { const themeClasses = themeDefaultProps?.classes || {}; const propsClasses = props?.classes || {}; const classKeys = [ ...Object.keys(themeClasses), ...Object.keys(propsClasses) ]; if (classKeys.length === 0) return void 0; return classKeys.reduce((acc, key) => { acc[key] = cx( themeClasses[key] && css(themeClasses[key]), propsClasses[key] ); return acc; }, {}); }, [css, cx, props?.classes, themeDefaultProps?.classes]); return { ...themeDefaultProps, ...filterProps(props), ...classes && { classes } }; } exports.useDefaultProps = useDefaultProps;