Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

DropdownToggle.js 1.9 KiB

pirms 3 gadiem
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.useDropdownToggle = useDropdownToggle;
  5. exports["default"] = void 0;
  6. var _propTypes = _interopRequireDefault(require("prop-types"));
  7. var _react = require("react");
  8. var _DropdownContext = _interopRequireDefault(require("./DropdownContext"));
  9. /**
  10. * Wires up Dropdown toggle functinality, returning a set a props to attach
  11. * to the element that functions as the dropdown toggle (generally a button).
  12. */
  13. function useDropdownToggle() {
  14. var _useContext = (0, _react.useContext)(_DropdownContext["default"]),
  15. show = _useContext.show,
  16. toggle = _useContext.toggle,
  17. setToggle = _useContext.setToggle;
  18. return [{
  19. ref: setToggle,
  20. 'aria-haspopup': true,
  21. 'aria-expanded': !!show
  22. }, {
  23. show: show,
  24. toggle: toggle
  25. }];
  26. }
  27. var propTypes = {
  28. /**
  29. * A render prop that returns a Toggle element. The `props`
  30. * argument should spread through to **a component that can accept a ref**. Use
  31. * the `onToggle` argument to toggle the menu open or closed
  32. *
  33. * @type {Function ({
  34. * show: boolean,
  35. * toggle: (show: boolean) => void,
  36. * props: {
  37. * ref: (?HTMLElement) => void,
  38. * aria-haspopup: true
  39. * aria-expanded: boolean
  40. * },
  41. * }) => React.Element}
  42. */
  43. children: _propTypes["default"].func.isRequired
  44. };
  45. function DropdownToggle(_ref) {
  46. var children = _ref.children;
  47. var _useDropdownToggle = useDropdownToggle(),
  48. props = _useDropdownToggle[0],
  49. _useDropdownToggle$ = _useDropdownToggle[1],
  50. show = _useDropdownToggle$.show,
  51. toggle = _useDropdownToggle$.toggle;
  52. return children({
  53. show: show,
  54. toggle: toggle,
  55. props: props
  56. });
  57. }
  58. DropdownToggle.displayName = 'ReactOverlaysDropdownToggle';
  59. DropdownToggle.propTypes = propTypes;
  60. /** @component */
  61. var _default = DropdownToggle;
  62. exports["default"] = _default;