UNPKG

pouncejs

Version:

A collection of UI components from Panther labs

31 lines (28 loc) 1.36 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; import React from 'react'; import { useComposedRefs, composeEventHandlers } from '@reach/utils'; import { usePopoverContext } from './Popover'; var PopoverTrigger = /*#__PURE__*/React.forwardRef(function PopoverTrigger(_ref, forwardedRef) { var _ref$as = _ref.as, Comp = _ref$as === void 0 ? 'button' : _ref$as, onMouseDown = _ref.onMouseDown, onKeyDown = _ref.onKeyDown, rest = _objectWithoutPropertiesLoose(_ref, ["as", "onMouseDown", "onKeyDown"]); // get the ref that we should store this trigger under var _usePopoverContext = usePopoverContext(), popoverId = _usePopoverContext.popoverId, triggerRef = _usePopoverContext.triggerRef, toggle = _usePopoverContext.toggle; // merge internal + passed prop together var ref = useComposedRefs(triggerRef, forwardedRef); return /*#__PURE__*/React.createElement(Comp, _extends({ ref: ref, onMouseDown: composeEventHandlers(onMouseDown, toggle), onKeyDown: composeEventHandlers(onKeyDown, function (_ref2) { var key = _ref2.key; return key === 'Enter' && toggle(); }), "aria-describedby": popoverId }, rest)); }); export default /*#__PURE__*/React.memo(PopoverTrigger);