@wix/design-system
Version:
@wix/design-system
21 lines • 1.02 kB
JavaScript
import { forwardRef, isValidElement, cloneElement } from 'react';
import { usePopoverNextContext } from '../../hooks/usePopoverNextContext';
import { mergeRefs } from '../../../utils/mergeRefs';
const Trigger = forwardRef(function PopoverTriggerWrapper({ children: triggerElement }, propRef) {
const { dataHook, context, interactions } = usePopoverNextContext();
if (!isValidElement(triggerElement)) {
throw new Error('<PopoverNext.Trigger /> children must be a valid React element');
}
const ref = mergeRefs(context?.refs.setReference, propRef, triggerElement.ref);
const referenceProps = interactions.getReferenceProps({
...triggerElement.props,
ref,
'data-hook': `${dataHook}-trigger`,
});
return cloneElement(triggerElement,
// @ts-ignore TODO: this overrides onKeyDown for DatePicker,
// to allow entering white space inside input
{ ...referenceProps, onKeyDown: undefined });
});
export default Trigger;
//# sourceMappingURL=Trigger.js.map