|
- "use strict";
-
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
- exports.__esModule = true;
- exports.useDropdownToggle = useDropdownToggle;
- exports["default"] = void 0;
-
- var _propTypes = _interopRequireDefault(require("prop-types"));
-
- var _react = require("react");
-
- var _DropdownContext = _interopRequireDefault(require("./DropdownContext"));
-
- /**
- * Wires up Dropdown toggle functinality, returning a set a props to attach
- * to the element that functions as the dropdown toggle (generally a button).
- */
- function useDropdownToggle() {
- var _useContext = (0, _react.useContext)(_DropdownContext["default"]),
- show = _useContext.show,
- toggle = _useContext.toggle,
- setToggle = _useContext.setToggle;
-
- return [{
- ref: setToggle,
- 'aria-haspopup': true,
- 'aria-expanded': !!show
- }, {
- show: show,
- toggle: toggle
- }];
- }
-
- var propTypes = {
- /**
- * A render prop that returns a Toggle element. The `props`
- * argument should spread through to **a component that can accept a ref**. Use
- * the `onToggle` argument to toggle the menu open or closed
- *
- * @type {Function ({
- * show: boolean,
- * toggle: (show: boolean) => void,
- * props: {
- * ref: (?HTMLElement) => void,
- * aria-haspopup: true
- * aria-expanded: boolean
- * },
- * }) => React.Element}
- */
- children: _propTypes["default"].func.isRequired
- };
-
- function DropdownToggle(_ref) {
- var children = _ref.children;
-
- var _useDropdownToggle = useDropdownToggle(),
- props = _useDropdownToggle[0],
- _useDropdownToggle$ = _useDropdownToggle[1],
- show = _useDropdownToggle$.show,
- toggle = _useDropdownToggle$.toggle;
-
- return children({
- show: show,
- toggle: toggle,
- props: props
- });
- }
-
- DropdownToggle.displayName = 'ReactOverlaysDropdownToggle';
- DropdownToggle.propTypes = propTypes;
- /** @component */
-
- var _default = DropdownToggle;
- exports["default"] = _default;
|