1 | import PropTypes from 'prop-types';
|
2 | import React, { useContext } from 'react';
|
3 | import DropdownContext from './DropdownContext';
|
4 |
|
5 | var noop = function noop() {};
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | export function useDropdownToggle() {
|
15 | var _ref = useContext(DropdownContext) || {},
|
16 | _ref$show = _ref.show,
|
17 | show = _ref$show === void 0 ? false : _ref$show,
|
18 | _ref$toggle = _ref.toggle,
|
19 | toggle = _ref$toggle === void 0 ? noop : _ref$toggle,
|
20 | setToggle = _ref.setToggle;
|
21 |
|
22 | return [{
|
23 | ref: setToggle || noop,
|
24 | 'aria-haspopup': true,
|
25 | 'aria-expanded': !!show
|
26 | }, {
|
27 | show: show,
|
28 | toggle: toggle
|
29 | }];
|
30 | }
|
31 | var propTypes = {
|
32 | |
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 | children: PropTypes.func.isRequired
|
48 | };
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 | function DropdownToggle(_ref2) {
|
57 | var children = _ref2.children;
|
58 |
|
59 | var _useDropdownToggle = useDropdownToggle(),
|
60 | props = _useDropdownToggle[0],
|
61 | _useDropdownToggle$ = _useDropdownToggle[1],
|
62 | show = _useDropdownToggle$.show,
|
63 | toggle = _useDropdownToggle$.toggle;
|
64 |
|
65 | return React.createElement(React.Fragment, null, children({
|
66 | show: show,
|
67 | toggle: toggle,
|
68 | props: props
|
69 | }));
|
70 | }
|
71 |
|
72 | DropdownToggle.displayName = 'ReactOverlaysDropdownToggle';
|
73 | DropdownToggle.propTypes = propTypes;
|
74 |
|
75 |
|
76 | export default DropdownToggle; |
\ | No newline at end of file |