@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
31 lines (28 loc) • 909 B
JavaScript
import clsx from 'clsx';
import { mergeProps, forEach, isFunction, isArray } from '@nex-ui/utils';
const useSlotProps = ({ ownerState, sx, externalSlotProps, externalForwardedProps, additionalProps, classNames: classNamesProp })=>{
const props = mergeProps(additionalProps, externalForwardedProps, externalSlotProps);
const className = clsx(classNamesProp, props?.className);
const resolveSx = (arg)=>{
const result = [];
forEach(arg, (sx)=>{
if (isFunction(sx)) {
result.push(sx(ownerState));
} else if (isArray(sx)) {
result.push(...sx);
} else if (sx != null) {
result.push(sx);
}
});
return result;
};
return {
...props,
className,
sx: resolveSx([
sx,
props.sx
])
};
};
export { useSlotProps };