@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.
Files changed (52) hide show
  1. package/CHANGELOG.json +55 -1
  2. package/CHANGELOG.md +22 -2
  3. package/lib/MenuTrigger/MenuTrigger.d.ts +3 -2
  4. package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -1
  5. package/lib/MenuTrigger/MenuTrigger.js +13 -20
  6. package/lib/MenuTrigger/MenuTrigger.js.map +1 -1
  7. package/lib/MenuTrigger/MenuTrigger.types.d.ts +11 -1
  8. package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
  9. package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -1
  10. package/lib/MenuTrigger/useMenuTrigger.d.ts +2 -2
  11. package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  12. package/lib/MenuTrigger/useMenuTrigger.js +28 -8
  13. package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
  14. package/lib/MenuTrigger/useMergeRefs.d.ts +20 -0
  15. package/lib/MenuTrigger/useMergeRefs.d.ts.map +1 -0
  16. package/lib/MenuTrigger/useMergeRefs.js +36 -0
  17. package/lib/MenuTrigger/useMergeRefs.js.map +1 -0
  18. package/lib/__tests__/Menu.test.js +1 -1
  19. package/lib/__tests__/Menu.test.js.map +1 -1
  20. package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts +3 -2
  21. package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts.map +1 -1
  22. package/lib-commonjs/MenuTrigger/MenuTrigger.js +14 -20
  23. package/lib-commonjs/MenuTrigger/MenuTrigger.js.map +1 -1
  24. package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts +11 -1
  25. package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
  26. package/lib-commonjs/MenuTrigger/MenuTrigger.types.js.map +1 -1
  27. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts +2 -2
  28. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  29. package/lib-commonjs/MenuTrigger/useMenuTrigger.js +27 -8
  30. package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
  31. package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts +20 -0
  32. package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts.map +1 -0
  33. package/lib-commonjs/MenuTrigger/useMergeRefs.js +40 -0
  34. package/lib-commonjs/MenuTrigger/useMergeRefs.js.map +1 -0
  35. package/lib-commonjs/__tests__/Menu.test.js +1 -1
  36. package/lib-commonjs/__tests__/Menu.test.js.map +1 -1
  37. package/package.json +6 -6
  38. package/src/MenuTrigger/MenuTrigger.tsx +15 -23
  39. package/src/MenuTrigger/MenuTrigger.types.ts +12 -0
  40. package/src/MenuTrigger/useMenuTrigger.ts +44 -9
  41. package/src/MenuTrigger/useMergeRefs.ts +42 -0
  42. package/src/__tests__/Menu.test.tsx +1 -1
  43. package/src/__tests__/__snapshots__/Menu.test.tsx.snap +8 -8
  44. package/lib/MenuTrigger/getRevisedProps.d.ts +0 -11
  45. package/lib/MenuTrigger/getRevisedProps.d.ts.map +0 -1
  46. package/lib/MenuTrigger/getRevisedProps.js +0 -45
  47. package/lib/MenuTrigger/getRevisedProps.js.map +0 -1
  48. package/lib-commonjs/MenuTrigger/getRevisedProps.d.ts +0 -11
  49. package/lib-commonjs/MenuTrigger/getRevisedProps.d.ts.map +0 -1
  50. package/lib-commonjs/MenuTrigger/getRevisedProps.js +0 -48
  51. package/lib-commonjs/MenuTrigger/getRevisedProps.js.map +0 -1
  52. 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": "Fri, 11 Nov 2022 18:04:19 GMT",
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 Fri, 11 Nov 2022 18:04:19 GMT and should not be manually modified.
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:04:19 GMT
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
- export declare const MenuTrigger: import("@fluentui-react-native/framework").ComposableFunction<React.PropsWithChildren<Record<never, any>>>;
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;AAO1B,eAAO,MAAM,WAAW,4GAqBtB,CAAC;AAGH,eAAe,WAAW,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
- import { getRevisedProps } from './getRevisedProps';
7
- export var MenuTrigger = stagedComponent(function (_props) {
8
- var menuTrigger = useMenuTrigger();
9
- return function (_rest, children) {
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
- // 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 child = childrenArray[0];
20
- var revisedProps = getRevisedProps(menuTrigger, child.props);
21
- var revised = React.cloneElement(child, revisedProps);
22
- return React.createElement(MenuTriggerProvider, { value: menuTrigger.hasSubmenu }, revised);
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;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,IAAM,WAAW,GAAG,eAAe,CAAC,UAAC,MAAmD;IAC7F,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,UAAC,KAAkD,EAAE,QAAyB;QACnF,IAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAyB,CAAC;QAE/E,IAAI,OAAO,EAAE;YACX,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;aAC1D;SACF;QAED,8EAA8E;QAC9E,wEAAwE;QACxE,gFAAgF;QAChF,IAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAM,YAAY,GAAG,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAExD,OAAO,oBAAC,mBAAmB,IAAC,KAAK,EAAE,WAAW,CAAC,UAAU,IAAG,OAAO,CAAuB,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAe,WAAW,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
- /// <reference types="react" />
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":";AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAEpG,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,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
+ {"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":"AAEA,MAAM,CAAC,IAAM,eAAe,GAAG,aAAa,CAAC"}
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;AAUvD,eAAO,MAAM,cAAc,QAAO,gBAoFjC,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
- var accessibilityActions = Platform.OS === 'win32' ? [{ name: 'Expand' }, { name: 'Collapse' }] : [];
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 = open ? expandedState : collapsedState;
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
- }, [setOpen]);
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
- }, [hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
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
- }, [hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
59
+ childOnHoverOut && childOnHoverOut(e);
60
+ }, [childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
43
61
  var onClick = React.useCallback(function (e) {
44
62
  setOpen(e, !open);
45
- }, [open, setOpen]);
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: triggerRef,
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":"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"}
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('Checkbox component tests', function () {
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,0BAA0B,EAAE;IACnC,EAAE,CAAC,cAAc,EAAE;QACjB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI;YACH,oBAAC,WAAW;gBACV,oBAAC,MAAM,kBAAiB,CACZ;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,mBAAoB,CACpB,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,WAAW,EAAE;QACd,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,mBAAoB,CACpB,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE;QACrB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,WAAW;YACf,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,mBAAoB;oBAC7B,oBAAC,QAAQ,IAAC,QAAQ,qBAAoB,CAC7B,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,gBAAgB,IAAC,IAAI,EAAC,UAAU,eAA4B;oBAC7D,oBAAC,WAAW,OAAG;oBACf,oBAAC,gBAAgB,IAAC,QAAQ,QAAC,IAAI,EAAC,UAAU,eAEvB,CACV,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE;QACpB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,aAAa,IAAC,IAAI,EAAC,UAAU,eAAyB;oBACvD,oBAAC,aAAa,IAAC,IAAI,EAAC,UAAU,eAAyB,CAC9C,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE;QACtC,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI,QAAC,cAAc,EAAE,CAAC,UAAU,CAAC;YACrC,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,gBAAgB,IAAC,IAAI,EAAC,UAAU,eAA4B;oBAC7D,oBAAC,WAAW,OAAG;oBACf,oBAAC,gBAAgB,IAAC,IAAI,EAAC,UAAU,eAA4B,CACpD,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAC/B,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI,QAAC,OAAO,EAAE,CAAC,UAAU,CAAC;YAC9B,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,gBAAgB,IAAC,IAAI,EAAC,UAAU,eAA4B;oBAC7D,oBAAC,WAAW,OAAG;oBACf,oBAAC,gBAAgB,IAAC,IAAI,EAAC,UAAU,eAA4B,CACpD,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE;QACjB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,kBAAiB,CACZ;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,mBAAoB;oBAC7B,oBAAC,IAAI;wBACH,oBAAC,WAAW;4BACV,oBAAC,QAAQ,mBAAoB,CACjB;wBACd,oBAAC,WAAW;4BACV,oBAAC,QAAQ;gCACP,oBAAC,QAAQ,mBAAoB,CACpB,CACC,CACT,CACE,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE;IAC9B,EAAE,CAAC,2BAA2B,EAAE;QAC9B,aAAa,CACX,cAAM,OAAA,CACJ,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,yBAAwB,CACnB;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,mBAAoB,CACpB,CACC,CACT,CACR,EAXK,CAWL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,IAAM,KAAK,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;QAC3C,aAAa,CACX,cAAM,OAAA,CACJ,oBAAC,IAAI;YACH,oBAAC,WAAW;gBACV,oBAAC,MAAM,IAAC,KAAK,EAAE,KAAK,qBAAyB,CACjC;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,mBAAoB,CACpB,CACC,CACT,CACR,EAXK,CAWL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE;QACvD,IAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,QAAmC,EAAE,CAAC,CAAC;QAC/D,aAAa,CACX,cAAM,OAAA,CACJ,oBAAC,IAAI;YACH,oBAAC,WAAW;gBACV,oBAAC,MAAM,yBAAwB,CACnB;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,IAAC,oBAAoB,EAAE,MAAM,eAAqB,CAClD,CACC,CACT,CACR,EAXK,CAWL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,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
- export declare const MenuTrigger: import("@fluentui-react-native/framework").ComposableFunction<React.PropsWithChildren<Record<never, any>>>;
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;AAO1B,eAAO,MAAM,WAAW,4GAqBtB,CAAC;AAGH,eAAe,WAAW,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 react_1 = (0, tslib_1.__importDefault)(require("react"));
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 getRevisedProps_1 = require("./getRevisedProps");
11
- exports.MenuTrigger = (0, framework_1.stagedComponent)(function (_props) {
12
- var menuTrigger = (0, useMenuTrigger_1.useMenuTrigger)();
13
- return function (_rest, children) {
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
- // In order to properly support accessibility without erasing props set on the
21
- // child component which may affect accessibility, we need to modify the
22
- // state in the inner render so we can access the child component and its props.
23
- var child = childrenArray[0];
24
- var revisedProps = (0, getRevisedProps_1.getRevisedProps)(menuTrigger, child.props);
25
- var revised = react_1.default.cloneElement(child, revisedProps);
26
- return react_1.default.createElement(menuTriggerContext_1.MenuTriggerProvider, { value: menuTrigger.hasSubmenu }, revised);
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,6DAA0B;AAC1B,8DAAmE;AACnE,yDAAsD;AACtD,mDAAkD;AAClD,oEAAoE;AACpE,qDAAoD;AAEvC,QAAA,WAAW,GAAG,IAAA,2BAAe,EAAC,UAAC,MAAmD;IAC7F,IAAM,WAAW,GAAG,IAAA,+BAAc,GAAE,CAAC;IAErC,OAAO,UAAC,KAAkD,EAAE,QAAyB;QACnF,IAAM,aAAa,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAyB,CAAC;QAE/E,IAAI,OAAO,EAAE;YACX,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;aAC1D;SACF;QAED,8EAA8E;QAC9E,wEAAwE;QACxE,gFAAgF;QAChF,IAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAM,YAAY,GAAG,IAAA,iCAAe,EAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAM,OAAO,GAAG,eAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAExD,OAAO,8BAAC,wCAAmB,IAAC,KAAK,EAAE,WAAW,CAAC,UAAU,IAAG,OAAO,CAAuB,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,mBAAW,CAAC,WAAW,GAAG,mCAAe,CAAC;AAE1C,kBAAe,mBAAW,CAAC"}
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
- /// <reference types="react" />
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":";AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAEpG,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,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
+ {"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":";;;AAEa,QAAA,eAAe,GAAG,aAAa,CAAC"}
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;AAUvD,eAAO,MAAM,cAAc,QAAO,gBAoFjC,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 accessibilityActions = react_native_1.Platform.OS === 'win32' ? [{ name: 'Expand' }, { name: 'Collapse' }] : [];
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 = open ? expandedState : collapsedState;
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
- }, [setOpen]);
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
- }, [hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
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
- }, [hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
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
- }, [open, setOpen]);
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: triggerRef,
79
+ componentRef: ref,
61
80
  accessibilityState: accessibilityState,
62
81
  accessibilityActions: accessibilityActions,
63
82
  onAccessibilityAction: onAccessibilityAction,