@fluentui-react-native/menu 1.0.73 → 1.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +55 -1
- package/CHANGELOG.md +22 -2
- package/lib/MenuTrigger/MenuTrigger.d.ts +3 -2
- package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.js +13 -20
- package/lib/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.types.d.ts +11 -1
- package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib/MenuTrigger/useMenuTrigger.d.ts +2 -2
- package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
- package/lib/MenuTrigger/useMenuTrigger.js +28 -8
- package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib/MenuTrigger/useMergeRefs.d.ts +20 -0
- package/lib/MenuTrigger/useMergeRefs.d.ts.map +1 -0
- package/lib/MenuTrigger/useMergeRefs.js +36 -0
- package/lib/MenuTrigger/useMergeRefs.js.map +1 -0
- package/lib/__tests__/Menu.test.js +1 -1
- package/lib/__tests__/Menu.test.js.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts +3 -2
- package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.js +14 -20
- package/lib-commonjs/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts +11 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts +2 -2
- package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js +27 -8
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts +20 -0
- package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts.map +1 -0
- package/lib-commonjs/MenuTrigger/useMergeRefs.js +40 -0
- package/lib-commonjs/MenuTrigger/useMergeRefs.js.map +1 -0
- package/lib-commonjs/__tests__/Menu.test.js +1 -1
- package/lib-commonjs/__tests__/Menu.test.js.map +1 -1
- package/package.json +6 -6
- package/src/MenuTrigger/MenuTrigger.tsx +15 -23
- package/src/MenuTrigger/MenuTrigger.types.ts +12 -0
- package/src/MenuTrigger/useMenuTrigger.ts +44 -9
- package/src/MenuTrigger/useMergeRefs.ts +42 -0
- package/src/__tests__/Menu.test.tsx +1 -1
- package/src/__tests__/__snapshots__/Menu.test.tsx.snap +8 -8
- package/lib/MenuTrigger/getRevisedProps.d.ts +0 -11
- package/lib/MenuTrigger/getRevisedProps.d.ts.map +0 -1
- package/lib/MenuTrigger/getRevisedProps.js +0 -45
- package/lib/MenuTrigger/getRevisedProps.js.map +0 -1
- package/lib-commonjs/MenuTrigger/getRevisedProps.d.ts +0 -11
- package/lib-commonjs/MenuTrigger/getRevisedProps.d.ts.map +0 -1
- package/lib-commonjs/MenuTrigger/getRevisedProps.js +0 -48
- package/lib-commonjs/MenuTrigger/getRevisedProps.js.map +0 -1
- package/src/MenuTrigger/getRevisedProps.ts +0 -52
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,61 @@
|
|
|
2
2
|
"name": "@fluentui-react-native/menu",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Sun, 13 Nov 2022 09:15:30 GMT",
|
|
6
|
+
"tag": "@fluentui-react-native/menu_v1.0.75",
|
|
7
|
+
"version": "1.0.75",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "beachball",
|
|
12
|
+
"package": "@fluentui-react-native/menu",
|
|
13
|
+
"comment": "Bump @fluentui-react-native/callout to v0.21.35",
|
|
14
|
+
"commit": "42685ad6d78fdec7de899153a20b40863bad12f3"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "beachball",
|
|
18
|
+
"package": "@fluentui-react-native/menu",
|
|
19
|
+
"comment": "Bump @fluentui-react-native/focus-zone to v0.11.5",
|
|
20
|
+
"commit": "42685ad6d78fdec7de899153a20b40863bad12f3"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"author": "beachball",
|
|
24
|
+
"package": "@fluentui-react-native/menu",
|
|
25
|
+
"comment": "Bump @fluentui-react-native/interactive-hooks to v0.21.0",
|
|
26
|
+
"commit": "42685ad6d78fdec7de899153a20b40863bad12f3"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"author": "beachball",
|
|
30
|
+
"package": "@fluentui-react-native/menu",
|
|
31
|
+
"comment": "Bump @fluentui-react-native/text to v0.16.0",
|
|
32
|
+
"commit": "42685ad6d78fdec7de899153a20b40863bad12f3"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"author": "beachball",
|
|
36
|
+
"package": "@fluentui-react-native/menu",
|
|
37
|
+
"comment": "Bump @fluentui-react-native/button to v0.31.0",
|
|
38
|
+
"commit": "42685ad6d78fdec7de899153a20b40863bad12f3"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"date": "Fri, 11 Nov 2022 19:03:46 GMT",
|
|
45
|
+
"tag": "@fluentui-react-native/menu_v1.0.74",
|
|
46
|
+
"version": "1.0.74",
|
|
47
|
+
"comments": {
|
|
48
|
+
"patch": [
|
|
49
|
+
{
|
|
50
|
+
"author": "ruaraki@microsoft.com",
|
|
51
|
+
"package": "@fluentui-react-native/menu",
|
|
52
|
+
"commit": "64b20dfcc58d60e3d609fc8ca07ef4043a21e5c8",
|
|
53
|
+
"comment": "Add ref merging to useMenuTrigger"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"date": "Fri, 11 Nov 2022 18:06:31 GMT",
|
|
6
60
|
"tag": "@fluentui-react-native/menu_v1.0.73",
|
|
7
61
|
"version": "1.0.73",
|
|
8
62
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
# Change Log - @fluentui-react-native/menu
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Sun, 13 Nov 2022 09:15:30 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 1.0.75
|
|
8
|
+
|
|
9
|
+
Sun, 13 Nov 2022 09:15:30 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- Bump @fluentui-react-native/callout to v0.21.35
|
|
14
|
+
- Bump @fluentui-react-native/focus-zone to v0.11.5
|
|
15
|
+
- Bump @fluentui-react-native/interactive-hooks to v0.21.0
|
|
16
|
+
- Bump @fluentui-react-native/text to v0.16.0
|
|
17
|
+
- Bump @fluentui-react-native/button to v0.31.0
|
|
18
|
+
|
|
19
|
+
## 1.0.74
|
|
20
|
+
|
|
21
|
+
Fri, 11 Nov 2022 19:03:46 GMT
|
|
22
|
+
|
|
23
|
+
### Patches
|
|
24
|
+
|
|
25
|
+
- Add ref merging to useMenuTrigger (ruaraki@microsoft.com)
|
|
26
|
+
|
|
7
27
|
## 1.0.73
|
|
8
28
|
|
|
9
|
-
Fri, 11 Nov 2022 18:
|
|
29
|
+
Fri, 11 Nov 2022 18:06:31 GMT
|
|
10
30
|
|
|
11
31
|
### Patches
|
|
12
32
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MenuTriggerProps } from './MenuTrigger.types';
|
|
3
|
+
export declare const MenuTrigger: React.FunctionComponent<MenuTriggerProps>;
|
|
3
4
|
export default MenuTrigger;
|
|
4
5
|
//# sourceMappingURL=MenuTrigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIxE,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAejE,CAAC;AAGF,eAAe,WAAW,CAAC"}
|
|
@@ -1,27 +1,20 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { stagedComponent } from '@fluentui-react-native/framework';
|
|
1
|
+
import * as React from 'react';
|
|
3
2
|
import { menuTriggerName } from './MenuTrigger.types';
|
|
4
3
|
import { useMenuTrigger } from './useMenuTrigger';
|
|
5
4
|
import { MenuTriggerProvider } from '../context/menuTriggerContext';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var childrenArray = React.Children.toArray(children);
|
|
11
|
-
if (__DEV__) {
|
|
12
|
-
if (childrenArray.length !== 1) {
|
|
13
|
-
console.warn('Only expecting one child for MenuTrigger');
|
|
14
|
-
}
|
|
5
|
+
export var MenuTrigger = function (props) {
|
|
6
|
+
if (__DEV__) {
|
|
7
|
+
if (!React.Children.only(props.children)) {
|
|
8
|
+
console.warn('Only expecting one child for MenuTrigger');
|
|
15
9
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
});
|
|
10
|
+
}
|
|
11
|
+
var menuTrigger = useMenuTrigger(props.children.props);
|
|
12
|
+
// In order to properly support accessibility without erasing props set on the
|
|
13
|
+
// child component which may affect accessibility, we need to modify the
|
|
14
|
+
// state in the inner render so we can access the child component and its props.
|
|
15
|
+
var revised = React.cloneElement(props.children, menuTrigger.props);
|
|
16
|
+
return React.createElement(MenuTriggerProvider, { value: menuTrigger.hasSubmenu }, revised);
|
|
17
|
+
};
|
|
25
18
|
MenuTrigger.displayName = menuTriggerName;
|
|
26
19
|
export default MenuTrigger;
|
|
27
20
|
//# sourceMappingURL=MenuTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,IAAM,WAAW,GAA8C,UAAC,KAAuB;IAC5F,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACxC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;SAC1D;KACF;IAED,IAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEzD,8EAA8E;IAC9E,wEAAwE;IACxE,gFAAgF;IAChF,IAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO,oBAAC,mBAAmB,IAAC,KAAK,EAAE,WAAW,CAAC,UAAU,IAAG,OAAO,CAAuB,CAAC;AAC7F,CAAC,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAe,WAAW,CAAC"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { InteractionEvent, PressablePropsExtended } from '@fluentui-react-native/interactive-hooks';
|
|
3
3
|
export declare const menuTriggerName = "MenuTrigger";
|
|
4
|
+
/**
|
|
5
|
+
* Represents single react element (or null), which is the
|
|
6
|
+
* type of the child of MenuTrigger. Notably this excludes string, number,
|
|
7
|
+
* and array of elements as children, which MenuTrigger doesn't support.
|
|
8
|
+
*/
|
|
9
|
+
declare type SingleReactElement = React.ReactElement | null;
|
|
10
|
+
export interface MenuTriggerProps {
|
|
11
|
+
children?: SingleReactElement;
|
|
12
|
+
}
|
|
4
13
|
export interface MenuTriggerChildProps extends Omit<PressablePropsExtended, 'onPress'> {
|
|
5
14
|
/**
|
|
6
15
|
* A RefObject to refer to the trigger component.
|
|
@@ -15,4 +24,5 @@ export interface MenuTriggerState {
|
|
|
15
24
|
props: MenuTriggerChildProps;
|
|
16
25
|
hasSubmenu: boolean;
|
|
17
26
|
}
|
|
27
|
+
export {};
|
|
18
28
|
//# sourceMappingURL=MenuTrigger.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTrigger.types.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuTrigger.types.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAEpG,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,aAAK,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC;IACpF;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEhD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTrigger.types.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuTrigger.types.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,IAAM,eAAe,GAAG,aAAa,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { MenuTriggerState } from './MenuTrigger.types';
|
|
2
|
-
export declare const useMenuTrigger: () => MenuTriggerState;
|
|
1
|
+
import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
2
|
+
export declare const useMenuTrigger: (childProps: MenuTriggerChildProps) => MenuTriggerState;
|
|
3
3
|
//# sourceMappingURL=useMenuTrigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAW9E,eAAO,MAAM,cAAc,eAAgB,qBAAqB,KAAG,gBAsHlE,CAAC"}
|
|
@@ -1,14 +1,29 @@
|
|
|
1
|
+
import { __assign, __spreadArray } from "tslib";
|
|
1
2
|
import { useMenuContext } from '../context/menuContext';
|
|
2
3
|
import { Platform } from 'react-native';
|
|
3
4
|
import React from 'react';
|
|
4
5
|
import { hoverDelayDefault } from '../consts';
|
|
5
|
-
|
|
6
|
+
import { useMergedRefs } from './useMergeRefs';
|
|
7
|
+
var baseAccessibilityActions = Platform.OS === 'win32' ? [{ name: 'Expand' }, { name: 'Collapse' }] : [];
|
|
6
8
|
var expandedState = { expanded: true };
|
|
7
9
|
var collapsedState = { expanded: false };
|
|
8
|
-
export var useMenuTrigger = function () {
|
|
10
|
+
export var useMenuTrigger = function (childProps) {
|
|
9
11
|
var context = useMenuContext();
|
|
10
12
|
var _a = context.hoverDelay, hoverDelay = _a === void 0 ? hoverDelayDefault : _a, open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
|
|
11
|
-
var accessibilityState =
|
|
13
|
+
var childAccessibilityActions = childProps.accessibilityActions, childAccessibilityState = childProps.accessibilityState, childOnAccessibilityAction = childProps.onAccessibilityAction, childOnClick = childProps.onClick, childOnHoverIn = childProps.onHoverIn, childOnHoverOut = childProps.onHoverOut, childComponentRef = childProps.componentRef;
|
|
14
|
+
var accessibilityActions = React.useMemo(function () {
|
|
15
|
+
if (childAccessibilityActions) {
|
|
16
|
+
return __spreadArray(__spreadArray([], baseAccessibilityActions, true), childAccessibilityActions, true);
|
|
17
|
+
}
|
|
18
|
+
return baseAccessibilityActions;
|
|
19
|
+
}, [childAccessibilityActions]);
|
|
20
|
+
var accessibilityState = React.useMemo(function () {
|
|
21
|
+
var baseState = open ? expandedState : collapsedState;
|
|
22
|
+
if (childAccessibilityState) {
|
|
23
|
+
return __assign(__assign({}, baseState), childAccessibilityState);
|
|
24
|
+
}
|
|
25
|
+
return baseState;
|
|
26
|
+
}, [childAccessibilityState, open]);
|
|
12
27
|
var onAccessibilityAction = React.useCallback(function (e) {
|
|
13
28
|
if (Platform.OS === 'win32') {
|
|
14
29
|
switch (e.nativeEvent.actionName) {
|
|
@@ -20,7 +35,8 @@ export var useMenuTrigger = function () {
|
|
|
20
35
|
break;
|
|
21
36
|
}
|
|
22
37
|
}
|
|
23
|
-
|
|
38
|
+
childOnAccessibilityAction && childOnAccessibilityAction(e);
|
|
39
|
+
}, [childOnAccessibilityAction, setOpen]);
|
|
24
40
|
var onHoverIn = React.useCallback(function (e) {
|
|
25
41
|
if (openOnHover) {
|
|
26
42
|
clearTimeout(popoverHoverOutTimer);
|
|
@@ -30,7 +46,8 @@ export var useMenuTrigger = function () {
|
|
|
30
46
|
setOpen(e, true /* isOpen */);
|
|
31
47
|
}, hoverDelay);
|
|
32
48
|
}
|
|
33
|
-
|
|
49
|
+
childOnHoverIn && childOnHoverIn(e);
|
|
50
|
+
}, [childOnHoverIn, hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
|
|
34
51
|
var onHoverOut = React.useCallback(function (e) {
|
|
35
52
|
if (openOnHover) {
|
|
36
53
|
e.persist();
|
|
@@ -39,10 +56,13 @@ export var useMenuTrigger = function () {
|
|
|
39
56
|
}, hoverDelay);
|
|
40
57
|
setTriggerHoverOutTimer(timer);
|
|
41
58
|
}
|
|
42
|
-
|
|
59
|
+
childOnHoverOut && childOnHoverOut(e);
|
|
60
|
+
}, [childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
|
|
43
61
|
var onClick = React.useCallback(function (e) {
|
|
44
62
|
setOpen(e, !open);
|
|
45
|
-
|
|
63
|
+
childOnClick && childOnClick(e);
|
|
64
|
+
}, [childOnClick, open, setOpen]);
|
|
65
|
+
var ref = useMergedRefs(triggerRef, childComponentRef);
|
|
46
66
|
React.useEffect(function () {
|
|
47
67
|
return function cleanup() {
|
|
48
68
|
clearTimeout(triggerHoverOutTimer);
|
|
@@ -53,7 +73,7 @@ export var useMenuTrigger = function () {
|
|
|
53
73
|
onClick: onClick,
|
|
54
74
|
onHoverIn: onHoverIn,
|
|
55
75
|
onHoverOut: onHoverOut,
|
|
56
|
-
componentRef:
|
|
76
|
+
componentRef: ref,
|
|
57
77
|
accessibilityState: accessibilityState,
|
|
58
78
|
accessibilityActions: accessibilityActions,
|
|
59
79
|
onAccessibilityAction: onAccessibilityAction,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAqD,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copied from @fluentui/react-utilities
|
|
3
|
+
*
|
|
4
|
+
* Keeping the file local to Menu for now while looking into whether
|
|
5
|
+
* we can pull in @fluentui/react-utilities package
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* A Ref function which can be treated like a ref object in that it has an attached
|
|
10
|
+
* current property, which will be updated as the ref is evaluated.
|
|
11
|
+
*/
|
|
12
|
+
export declare type RefObjectFunction<T> = React.RefObject<T> & ((value: T) => void);
|
|
13
|
+
/**
|
|
14
|
+
* React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
|
|
15
|
+
* updates all provided refs
|
|
16
|
+
* @param refs - Refs to collectively update with one ref value.
|
|
17
|
+
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useMergedRefs<T>(...refs: (React.Ref<T> | undefined)[]): RefObjectFunction<T>;
|
|
20
|
+
//# sourceMappingURL=useMergeRefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMergeRefs.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,oBAAY,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAoB5F"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copied from @fluentui/react-utilities
|
|
3
|
+
*
|
|
4
|
+
* Keeping the file local to Menu for now while looking into whether
|
|
5
|
+
* we can pull in @fluentui/react-utilities package
|
|
6
|
+
*/
|
|
7
|
+
import { __spreadArray } from "tslib";
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
/**
|
|
10
|
+
* React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
|
|
11
|
+
* updates all provided refs
|
|
12
|
+
* @param refs - Refs to collectively update with one ref value.
|
|
13
|
+
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
14
|
+
*/
|
|
15
|
+
export function useMergedRefs() {
|
|
16
|
+
var refs = [];
|
|
17
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
18
|
+
refs[_i] = arguments[_i];
|
|
19
|
+
}
|
|
20
|
+
var mergedCallback = React.useCallback(function (value) {
|
|
21
|
+
// Update the "current" prop hanging on the function.
|
|
22
|
+
mergedCallback.current = value;
|
|
23
|
+
for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {
|
|
24
|
+
var ref = refs_1[_i];
|
|
25
|
+
if (typeof ref === 'function') {
|
|
26
|
+
ref(value);
|
|
27
|
+
}
|
|
28
|
+
else if (ref) {
|
|
29
|
+
// work around the immutability of the React.Ref type
|
|
30
|
+
ref.current = value;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}, __spreadArray([], refs, true));
|
|
34
|
+
return mergedCallback;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=useMergeRefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMergeRefs.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAAI,cAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,yBAAqC;;IACpE,IAAM,cAAc,GAAyB,KAAK,CAAC,WAAW,CAC5D,UAAC,KAAQ;QACP,qDAAqD;QACpD,cAAuD,CAAC,OAAO,GAAG,KAAK,CAAC;QAEzE,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAnB,IAAM,GAAG,aAAA;YACZ,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,KAAK,CAAC,CAAC;aACZ;iBAAM,IAAI,GAAG,EAAE;gBACd,qDAAqD;gBACpD,GAA4C,CAAC,OAAO,GAAG,KAAK,CAAC;aAC/D;SACF;IACH,CAAC,oBAEG,IAAI,QAC0B,CAAC;IAErC,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { MenuItem } from '../MenuItem/MenuItem';
|
|
|
10
10
|
import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
|
|
11
11
|
import { MenuDivider } from '../MenuDivider/MenuDivider';
|
|
12
12
|
import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
|
|
13
|
-
describe('
|
|
13
|
+
describe('Menu component tests', function () {
|
|
14
14
|
it('Menu default', function () {
|
|
15
15
|
var tree = renderer
|
|
16
16
|
.create(React.createElement(Menu, null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MenuTriggerProps } from './MenuTrigger.types';
|
|
3
|
+
export declare const MenuTrigger: React.FunctionComponent<MenuTriggerProps>;
|
|
3
4
|
export default MenuTrigger;
|
|
4
5
|
//# sourceMappingURL=MenuTrigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIxE,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAejE,CAAC;AAGF,eAAe,WAAW,CAAC"}
|
|
@@ -2,30 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MenuTrigger = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var
|
|
6
|
-
var framework_1 = require("@fluentui-react-native/framework");
|
|
5
|
+
var React = (0, tslib_1.__importStar)(require("react"));
|
|
7
6
|
var MenuTrigger_types_1 = require("./MenuTrigger.types");
|
|
8
7
|
var useMenuTrigger_1 = require("./useMenuTrigger");
|
|
9
8
|
var menuTriggerContext_1 = require("../context/menuTriggerContext");
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var childrenArray = react_1.default.Children.toArray(children);
|
|
15
|
-
if (__DEV__) {
|
|
16
|
-
if (childrenArray.length !== 1) {
|
|
17
|
-
console.warn('Only expecting one child for MenuTrigger');
|
|
18
|
-
}
|
|
9
|
+
var MenuTrigger = function (props) {
|
|
10
|
+
if (__DEV__) {
|
|
11
|
+
if (!React.Children.only(props.children)) {
|
|
12
|
+
console.warn('Only expecting one child for MenuTrigger');
|
|
19
13
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
14
|
+
}
|
|
15
|
+
var menuTrigger = (0, useMenuTrigger_1.useMenuTrigger)(props.children.props);
|
|
16
|
+
// In order to properly support accessibility without erasing props set on the
|
|
17
|
+
// child component which may affect accessibility, we need to modify the
|
|
18
|
+
// state in the inner render so we can access the child component and its props.
|
|
19
|
+
var revised = React.cloneElement(props.children, menuTrigger.props);
|
|
20
|
+
return React.createElement(menuTriggerContext_1.MenuTriggerProvider, { value: menuTrigger.hasSubmenu }, revised);
|
|
21
|
+
};
|
|
22
|
+
exports.MenuTrigger = MenuTrigger;
|
|
29
23
|
exports.MenuTrigger.displayName = MenuTrigger_types_1.menuTriggerName;
|
|
30
24
|
exports.default = exports.MenuTrigger;
|
|
31
25
|
//# sourceMappingURL=MenuTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAC/B,yDAAwE;AACxE,mDAAkD;AAClD,oEAAoE;AAE7D,IAAM,WAAW,GAA8C,UAAC,KAAuB;IAC5F,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACxC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;SAC1D;KACF;IAED,IAAM,WAAW,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEzD,8EAA8E;IAC9E,wEAAwE;IACxE,gFAAgF;IAChF,IAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO,oBAAC,wCAAmB,IAAC,KAAK,EAAE,WAAW,CAAC,UAAU,IAAG,OAAO,CAAuB,CAAC;AAC7F,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB;AACF,mBAAW,CAAC,WAAW,GAAG,mCAAe,CAAC;AAE1C,kBAAe,mBAAW,CAAC"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { InteractionEvent, PressablePropsExtended } from '@fluentui-react-native/interactive-hooks';
|
|
3
3
|
export declare const menuTriggerName = "MenuTrigger";
|
|
4
|
+
/**
|
|
5
|
+
* Represents single react element (or null), which is the
|
|
6
|
+
* type of the child of MenuTrigger. Notably this excludes string, number,
|
|
7
|
+
* and array of elements as children, which MenuTrigger doesn't support.
|
|
8
|
+
*/
|
|
9
|
+
declare type SingleReactElement = React.ReactElement | null;
|
|
10
|
+
export interface MenuTriggerProps {
|
|
11
|
+
children?: SingleReactElement;
|
|
12
|
+
}
|
|
4
13
|
export interface MenuTriggerChildProps extends Omit<PressablePropsExtended, 'onPress'> {
|
|
5
14
|
/**
|
|
6
15
|
* A RefObject to refer to the trigger component.
|
|
@@ -15,4 +24,5 @@ export interface MenuTriggerState {
|
|
|
15
24
|
props: MenuTriggerChildProps;
|
|
16
25
|
hasSubmenu: boolean;
|
|
17
26
|
}
|
|
27
|
+
export {};
|
|
18
28
|
//# sourceMappingURL=MenuTrigger.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTrigger.types.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuTrigger.types.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAEpG,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,aAAK,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC;IACpF;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEhD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTrigger.types.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MenuTrigger.types.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":";;;AAGa,QAAA,eAAe,GAAG,aAAa,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { MenuTriggerState } from './MenuTrigger.types';
|
|
2
|
-
export declare const useMenuTrigger: () => MenuTriggerState;
|
|
1
|
+
import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
2
|
+
export declare const useMenuTrigger: (childProps: MenuTriggerChildProps) => MenuTriggerState;
|
|
3
3
|
//# sourceMappingURL=useMenuTrigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAW9E,eAAO,MAAM,cAAc,eAAgB,qBAAqB,KAAG,gBAsHlE,CAAC"}
|
|
@@ -6,13 +6,27 @@ var menuContext_1 = require("../context/menuContext");
|
|
|
6
6
|
var react_native_1 = require("react-native");
|
|
7
7
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
8
8
|
var consts_1 = require("../consts");
|
|
9
|
-
var
|
|
9
|
+
var useMergeRefs_1 = require("./useMergeRefs");
|
|
10
|
+
var baseAccessibilityActions = react_native_1.Platform.OS === 'win32' ? [{ name: 'Expand' }, { name: 'Collapse' }] : [];
|
|
10
11
|
var expandedState = { expanded: true };
|
|
11
12
|
var collapsedState = { expanded: false };
|
|
12
|
-
var useMenuTrigger = function () {
|
|
13
|
+
var useMenuTrigger = function (childProps) {
|
|
13
14
|
var context = (0, menuContext_1.useMenuContext)();
|
|
14
15
|
var _a = context.hoverDelay, hoverDelay = _a === void 0 ? consts_1.hoverDelayDefault : _a, open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
|
|
15
|
-
var accessibilityState =
|
|
16
|
+
var childAccessibilityActions = childProps.accessibilityActions, childAccessibilityState = childProps.accessibilityState, childOnAccessibilityAction = childProps.onAccessibilityAction, childOnClick = childProps.onClick, childOnHoverIn = childProps.onHoverIn, childOnHoverOut = childProps.onHoverOut, childComponentRef = childProps.componentRef;
|
|
17
|
+
var accessibilityActions = react_1.default.useMemo(function () {
|
|
18
|
+
if (childAccessibilityActions) {
|
|
19
|
+
return (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], baseAccessibilityActions, true), childAccessibilityActions, true);
|
|
20
|
+
}
|
|
21
|
+
return baseAccessibilityActions;
|
|
22
|
+
}, [childAccessibilityActions]);
|
|
23
|
+
var accessibilityState = react_1.default.useMemo(function () {
|
|
24
|
+
var baseState = open ? expandedState : collapsedState;
|
|
25
|
+
if (childAccessibilityState) {
|
|
26
|
+
return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, baseState), childAccessibilityState);
|
|
27
|
+
}
|
|
28
|
+
return baseState;
|
|
29
|
+
}, [childAccessibilityState, open]);
|
|
16
30
|
var onAccessibilityAction = react_1.default.useCallback(function (e) {
|
|
17
31
|
if (react_native_1.Platform.OS === 'win32') {
|
|
18
32
|
switch (e.nativeEvent.actionName) {
|
|
@@ -24,7 +38,8 @@ var useMenuTrigger = function () {
|
|
|
24
38
|
break;
|
|
25
39
|
}
|
|
26
40
|
}
|
|
27
|
-
|
|
41
|
+
childOnAccessibilityAction && childOnAccessibilityAction(e);
|
|
42
|
+
}, [childOnAccessibilityAction, setOpen]);
|
|
28
43
|
var onHoverIn = react_1.default.useCallback(function (e) {
|
|
29
44
|
if (openOnHover) {
|
|
30
45
|
clearTimeout(popoverHoverOutTimer);
|
|
@@ -34,7 +49,8 @@ var useMenuTrigger = function () {
|
|
|
34
49
|
setOpen(e, true /* isOpen */);
|
|
35
50
|
}, hoverDelay);
|
|
36
51
|
}
|
|
37
|
-
|
|
52
|
+
childOnHoverIn && childOnHoverIn(e);
|
|
53
|
+
}, [childOnHoverIn, hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
|
|
38
54
|
var onHoverOut = react_1.default.useCallback(function (e) {
|
|
39
55
|
if (openOnHover) {
|
|
40
56
|
e.persist();
|
|
@@ -43,10 +59,13 @@ var useMenuTrigger = function () {
|
|
|
43
59
|
}, hoverDelay);
|
|
44
60
|
setTriggerHoverOutTimer(timer);
|
|
45
61
|
}
|
|
46
|
-
|
|
62
|
+
childOnHoverOut && childOnHoverOut(e);
|
|
63
|
+
}, [childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
|
|
47
64
|
var onClick = react_1.default.useCallback(function (e) {
|
|
48
65
|
setOpen(e, !open);
|
|
49
|
-
|
|
66
|
+
childOnClick && childOnClick(e);
|
|
67
|
+
}, [childOnClick, open, setOpen]);
|
|
68
|
+
var ref = (0, useMergeRefs_1.useMergedRefs)(triggerRef, childComponentRef);
|
|
50
69
|
react_1.default.useEffect(function () {
|
|
51
70
|
return function cleanup() {
|
|
52
71
|
clearTimeout(triggerHoverOutTimer);
|
|
@@ -57,7 +76,7 @@ var useMenuTrigger = function () {
|
|
|
57
76
|
onClick: onClick,
|
|
58
77
|
onHoverIn: onHoverIn,
|
|
59
78
|
onHoverOut: onHoverOut,
|
|
60
|
-
componentRef:
|
|
79
|
+
componentRef: ref,
|
|
61
80
|
accessibilityState: accessibilityState,
|
|
62
81
|
accessibilityActions: accessibilityActions,
|
|
63
82
|
onAccessibilityAction: onAccessibilityAction,
|