UNPKG

@nex-ui/react

Version:

🎉 A beautiful, modern, and reliable React component library.

31 lines (28 loc) • 909 B
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 };