@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
@@ -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,40 @@
1
+ "use strict";
2
+ /**
3
+ * Copied from @fluentui/react-utilities
4
+ *
5
+ * Keeping the file local to Menu for now while looking into whether
6
+ * we can pull in @fluentui/react-utilities package
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.useMergedRefs = void 0;
10
+ var tslib_1 = require("tslib");
11
+ var React = (0, tslib_1.__importStar)(require("react"));
12
+ /**
13
+ * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
14
+ * updates all provided refs
15
+ * @param refs - Refs to collectively update with one ref value.
16
+ * @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
17
+ */
18
+ function useMergedRefs() {
19
+ var refs = [];
20
+ for (var _i = 0; _i < arguments.length; _i++) {
21
+ refs[_i] = arguments[_i];
22
+ }
23
+ var mergedCallback = React.useCallback(function (value) {
24
+ // Update the "current" prop hanging on the function.
25
+ mergedCallback.current = value;
26
+ for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {
27
+ var ref = refs_1[_i];
28
+ if (typeof ref === 'function') {
29
+ ref(value);
30
+ }
31
+ else if (ref) {
32
+ // work around the immutability of the React.Ref type
33
+ ref.current = value;
34
+ }
35
+ }
36
+ }, (0, tslib_1.__spreadArray)([], refs, true));
37
+ return mergedCallback;
38
+ }
39
+ exports.useMergedRefs = useMergedRefs;
40
+ //# sourceMappingURL=useMergeRefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMergeRefs.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wDAA+B;AAQ/B;;;;;GAKG;AACH,SAAgB,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,iCAEG,IAAI,QAC0B,CAAC;IAErC,OAAO,cAAc,CAAC;AACxB,CAAC;AApBD,sCAoBC"}
@@ -13,7 +13,7 @@ var MenuItem_1 = require("../MenuItem/MenuItem");
13
13
  var MenuItemCheckbox_1 = require("../MenuItemCheckbox/MenuItemCheckbox");
14
14
  var MenuDivider_1 = require("../MenuDivider/MenuDivider");
15
15
  var MenuItemRadio_1 = require("../MenuItemRadio/MenuItemRadio");
16
- describe('Checkbox component tests', function () {
16
+ describe('Menu component tests', function () {
17
17
  it('Menu default', function () {
18
18
  var tree = renderer
19
19
  .create(React.createElement(Menu_1.Menu, null,
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":";;;AAAA,wDAA+B;AAE/B,yEAAgD;AAChD,qCAAoC;AACpC,gEAAkE;AAClE,wFAAqD;AACrD,wDAAmE;AACnE,wFAAqD;AACrD,iDAAgD;AAChD,iDAAgD;AAChD,yEAAwE;AACxE,0DAAyD;AACzD,gEAA+D;AAE/D,QAAQ,CAAC,sBAAsB,EAAE;IAC/B,EAAE,CAAC,cAAc,EAAE;QACjB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,WAAI;YACH,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,kBAAiB,CACZ;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mBAAQ,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,WAAI,IAAC,IAAI;YACR,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,eAAc,CACT;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mBAAQ,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,WAAI,IAAC,WAAW;YACf,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,eAAc,CACT;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mBAAQ,mBAAoB;oBAC7B,oBAAC,mBAAQ,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,WAAI,IAAC,IAAI;YACR,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,eAAc,CACT;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mCAAgB,IAAC,IAAI,EAAC,UAAU,eAA4B;oBAC7D,oBAAC,yBAAW,OAAG;oBACf,oBAAC,mCAAgB,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,WAAI,IAAC,IAAI;YACR,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,eAAc,CACT;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,6BAAa,IAAC,IAAI,EAAC,UAAU,eAAyB;oBACvD,oBAAC,6BAAa,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,WAAI,IAAC,IAAI,QAAC,cAAc,EAAE,CAAC,UAAU,CAAC;YACrC,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,eAAc,CACT;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mCAAgB,IAAC,IAAI,EAAC,UAAU,eAA4B;oBAC7D,oBAAC,yBAAW,OAAG;oBACf,oBAAC,mCAAgB,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,WAAI,IAAC,IAAI,QAAC,OAAO,EAAE,CAAC,UAAU,CAAC;YAC9B,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,eAAc,CACT;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mCAAgB,IAAC,IAAI,EAAC,UAAU,eAA4B;oBAC7D,oBAAC,yBAAW,OAAG;oBACf,oBAAC,mCAAgB,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,WAAI,IAAC,IAAI;YACR,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,kBAAiB,CACZ;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mBAAQ,mBAAoB;oBAC7B,oBAAC,WAAI;wBACH,oBAAC,qBAAW;4BACV,oBAAC,mBAAQ,mBAAoB,CACjB;wBACd,oBAAC,qBAAW;4BACV,oBAAC,mBAAQ;gCACP,oBAAC,mBAAQ,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,IAAA,0BAAa,EACX,cAAM,OAAA,CACJ,oBAAC,WAAI,IAAC,IAAI;YACR,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,yBAAwB,CACnB;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mBAAQ,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,IAAA,0BAAa,EACX,cAAM,OAAA,CACJ,oBAAC,WAAI;YACH,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,IAAC,KAAK,EAAE,KAAK,qBAAyB,CACjC;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mBAAQ,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,IAAA,0BAAa,EACX,cAAM,OAAA,CACJ,oBAAC,WAAI;YACH,oBAAC,qBAAW;gBACV,oBAAC,iBAAM,yBAAwB,CACnB;YACd,oBAAC,qBAAW;gBACV,oBAAC,mBAAQ;oBACP,oBAAC,mBAAQ,IAAC,oBAAoB,EAAE,MAAM,eAAqB,CAClD,CACC,CACT,CACR,EAXK,CAWL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui-react-native/menu",
3
- "version": "1.0.73",
3
+ "version": "1.0.75",
4
4
  "description": "A cross-platform Menu component using the Fluent Design System",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -23,11 +23,11 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@fluentui-react-native/adapters": ">=0.10.0 <1.0.0",
26
- "@fluentui-react-native/callout": ">=0.21.34 <1.0.0",
27
- "@fluentui-react-native/focus-zone": ">=0.11.4 <1.0.0",
26
+ "@fluentui-react-native/callout": ">=0.21.35 <1.0.0",
27
+ "@fluentui-react-native/focus-zone": ">=0.11.5 <1.0.0",
28
28
  "@fluentui-react-native/framework": "0.8.19",
29
- "@fluentui-react-native/interactive-hooks": ">=0.20.2 <1.0.0",
30
- "@fluentui-react-native/text": ">=0.15.15 <1.0.0",
29
+ "@fluentui-react-native/interactive-hooks": ">=0.21.0 <1.0.0",
30
+ "@fluentui-react-native/text": ">=0.16.0 <1.0.0",
31
31
  "@fluentui-react-native/theme-tokens": ">=0.21.3 <1.0.0",
32
32
  "@fluentui-react-native/tokens": ">=0.17.8 <1.0.0",
33
33
  "@fluentui-react-native/use-styling": ">=0.9.1 <1.0.0",
@@ -35,7 +35,7 @@
35
35
  "tslib": "^2.3.1"
36
36
  },
37
37
  "devDependencies": {
38
- "@fluentui-react-native/button": ">=0.30.2 <1.0.0",
38
+ "@fluentui-react-native/button": ">=0.31.0 <1.0.0",
39
39
  "@fluentui-react-native/eslint-config-rules": "^0.1.1",
40
40
  "@fluentui-react-native/scripts": "^0.1.1",
41
41
  "@fluentui-react-native/test-tools": ">=0.1.1 <1.0.0",
@@ -1,32 +1,24 @@
1
- import React from 'react';
2
- import { stagedComponent } from '@fluentui-react-native/framework';
3
- import { menuTriggerName } from './MenuTrigger.types';
1
+ import * as React from 'react';
2
+ import { menuTriggerName, MenuTriggerProps } from './MenuTrigger.types';
4
3
  import { useMenuTrigger } from './useMenuTrigger';
5
4
  import { MenuTriggerProvider } from '../context/menuTriggerContext';
6
- import { getRevisedProps } from './getRevisedProps';
7
5
 
8
- export const MenuTrigger = stagedComponent((_props: React.PropsWithChildren<Record<never, any>>) => {
9
- const menuTrigger = useMenuTrigger();
10
-
11
- return (_rest: React.PropsWithChildren<Record<never, any>>, children: React.ReactNode) => {
12
- const childrenArray = React.Children.toArray(children) as React.ReactElement[];
13
-
14
- if (__DEV__) {
15
- if (childrenArray.length !== 1) {
16
- console.warn('Only expecting one child for MenuTrigger');
17
- }
6
+ export const MenuTrigger: React.FunctionComponent<MenuTriggerProps> = (props: MenuTriggerProps) => {
7
+ if (__DEV__) {
8
+ if (!React.Children.only(props.children)) {
9
+ console.warn('Only expecting one child for MenuTrigger');
18
10
  }
11
+ }
12
+
13
+ const menuTrigger = useMenuTrigger(props.children.props);
19
14
 
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
- const child = childrenArray[0];
24
- const revisedProps = getRevisedProps(menuTrigger, child.props);
25
- const revised = React.cloneElement(child, revisedProps);
15
+ // In order to properly support accessibility without erasing props set on the
16
+ // child component which may affect accessibility, we need to modify the
17
+ // state in the inner render so we can access the child component and its props.
18
+ const revised = React.cloneElement(props.children, menuTrigger.props);
26
19
 
27
- return <MenuTriggerProvider value={menuTrigger.hasSubmenu}>{revised}</MenuTriggerProvider>;
28
- };
29
- });
20
+ return <MenuTriggerProvider value={menuTrigger.hasSubmenu}>{revised}</MenuTriggerProvider>;
21
+ };
30
22
  MenuTrigger.displayName = menuTriggerName;
31
23
 
32
24
  export default MenuTrigger;
@@ -1,7 +1,19 @@
1
+ import * as React from 'react';
1
2
  import { InteractionEvent, PressablePropsExtended } from '@fluentui-react-native/interactive-hooks';
2
3
 
3
4
  export const menuTriggerName = 'MenuTrigger';
4
5
 
6
+ /**
7
+ * Represents single react element (or null), which is the
8
+ * type of the child of MenuTrigger. Notably this excludes string, number,
9
+ * and array of elements as children, which MenuTrigger doesn't support.
10
+ */
11
+ type SingleReactElement = React.ReactElement | null;
12
+
13
+ export interface MenuTriggerProps {
14
+ children?: SingleReactElement;
15
+ }
16
+
5
17
  export interface MenuTriggerChildProps extends Omit<PressablePropsExtended, 'onPress'> {
6
18
  /**
7
19
  * A RefObject to refer to the trigger component.
@@ -1,16 +1,17 @@
1
1
  import { useMenuContext } from '../context/menuContext';
2
2
  import { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
3
- import { MenuTriggerState } from './MenuTrigger.types';
3
+ import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
4
4
  import { AccessibilityActionEvent, AccessibilityActionName, Platform } from 'react-native';
5
5
  import React from 'react';
6
6
  import { hoverDelayDefault } from '../consts';
7
+ import { useMergedRefs } from './useMergeRefs';
7
8
 
8
- const accessibilityActions =
9
+ const baseAccessibilityActions =
9
10
  Platform.OS === ('win32' as any) ? [{ name: 'Expand' as AccessibilityActionName }, { name: 'Collapse' as AccessibilityActionName }] : [];
10
11
  const expandedState = { expanded: true };
11
12
  const collapsedState = { expanded: false };
12
13
 
13
- export const useMenuTrigger = (): MenuTriggerState => {
14
+ export const useMenuTrigger = (childProps: MenuTriggerChildProps): MenuTriggerState => {
14
15
  const context = useMenuContext();
15
16
  const {
16
17
  hoverDelay = hoverDelayDefault,
@@ -23,7 +24,33 @@ export const useMenuTrigger = (): MenuTriggerState => {
23
24
  triggerRef,
24
25
  } = context;
25
26
 
26
- const accessibilityState = open ? expandedState : collapsedState;
27
+ const {
28
+ accessibilityActions: childAccessibilityActions,
29
+ accessibilityState: childAccessibilityState,
30
+ onAccessibilityAction: childOnAccessibilityAction,
31
+ onClick: childOnClick,
32
+ onHoverIn: childOnHoverIn,
33
+ onHoverOut: childOnHoverOut,
34
+ componentRef: childComponentRef,
35
+ } = childProps;
36
+
37
+ const accessibilityActions = React.useMemo(() => {
38
+ if (childAccessibilityActions) {
39
+ return [...baseAccessibilityActions, ...childAccessibilityActions];
40
+ }
41
+
42
+ return baseAccessibilityActions;
43
+ }, [childAccessibilityActions]);
44
+
45
+ const accessibilityState = React.useMemo(() => {
46
+ const baseState = open ? expandedState : collapsedState;
47
+
48
+ if (childAccessibilityState) {
49
+ return { ...baseState, ...childAccessibilityState };
50
+ }
51
+
52
+ return baseState;
53
+ }, [childAccessibilityState, open]);
27
54
 
28
55
  const onAccessibilityAction = React.useCallback(
29
56
  (e: AccessibilityActionEvent) => {
@@ -38,8 +65,9 @@ export const useMenuTrigger = (): MenuTriggerState => {
38
65
  break;
39
66
  }
40
67
  }
68
+ childOnAccessibilityAction && childOnAccessibilityAction(e);
41
69
  },
42
- [setOpen],
70
+ [childOnAccessibilityAction, setOpen],
43
71
  );
44
72
 
45
73
  const onHoverIn = React.useCallback(
@@ -52,8 +80,10 @@ export const useMenuTrigger = (): MenuTriggerState => {
52
80
  setOpen(e, true /* isOpen */);
53
81
  }, hoverDelay);
54
82
  }
83
+
84
+ childOnHoverIn && childOnHoverIn(e);
55
85
  },
56
- [hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer],
86
+ [childOnHoverIn, hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer],
57
87
  );
58
88
 
59
89
  const onHoverOut = React.useCallback(
@@ -65,17 +95,22 @@ export const useMenuTrigger = (): MenuTriggerState => {
65
95
  }, hoverDelay);
66
96
  setTriggerHoverOutTimer(timer);
67
97
  }
98
+
99
+ childOnHoverOut && childOnHoverOut(e);
68
100
  },
69
- [hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer],
101
+ [childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer],
70
102
  );
71
103
 
72
104
  const onClick = React.useCallback(
73
105
  (e: InteractionEvent) => {
74
106
  setOpen(e, !open);
107
+ childOnClick && childOnClick(e);
75
108
  },
76
- [open, setOpen],
109
+ [childOnClick, open, setOpen],
77
110
  );
78
111
 
112
+ const ref = useMergedRefs(triggerRef, childComponentRef);
113
+
79
114
  React.useEffect(() => {
80
115
  return function cleanup() {
81
116
  clearTimeout(triggerHoverOutTimer);
@@ -87,7 +122,7 @@ export const useMenuTrigger = (): MenuTriggerState => {
87
122
  onClick,
88
123
  onHoverIn,
89
124
  onHoverOut,
90
- componentRef: triggerRef,
125
+ componentRef: ref,
91
126
  accessibilityState,
92
127
  accessibilityActions,
93
128
  onAccessibilityAction,
@@ -0,0 +1,42 @@
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
+
8
+ import * as React from 'react';
9
+
10
+ /**
11
+ * A Ref function which can be treated like a ref object in that it has an attached
12
+ * current property, which will be updated as the ref is evaluated.
13
+ */
14
+ export type RefObjectFunction<T> = React.RefObject<T> & ((value: T) => void);
15
+
16
+ /**
17
+ * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
18
+ * updates all provided refs
19
+ * @param refs - Refs to collectively update with one ref value.
20
+ * @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
21
+ */
22
+ export function useMergedRefs<T>(...refs: (React.Ref<T> | undefined)[]): RefObjectFunction<T> {
23
+ const mergedCallback: RefObjectFunction<T> = React.useCallback(
24
+ (value: T) => {
25
+ // Update the "current" prop hanging on the function.
26
+ (mergedCallback as unknown as React.MutableRefObject<T>).current = value;
27
+
28
+ for (const ref of refs) {
29
+ if (typeof ref === 'function') {
30
+ ref(value);
31
+ } else if (ref) {
32
+ // work around the immutability of the React.Ref type
33
+ (ref as unknown as React.MutableRefObject<T>).current = value;
34
+ }
35
+ }
36
+ },
37
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- already exhaustive
38
+ [...refs],
39
+ ) as unknown as RefObjectFunction<T>;
40
+
41
+ return mergedCallback;
42
+ }
@@ -12,7 +12,7 @@ import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
12
12
  import { MenuDivider } from '../MenuDivider/MenuDivider';
13
13
  import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
14
14
 
15
- describe('Checkbox component tests', () => {
15
+ describe('Menu component tests', () => {
16
16
  it('Menu default', () => {
17
17
  const tree = renderer
18
18
  .create(
@@ -1,6 +1,6 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`Checkbox component tests Menu default 1`] = `
3
+ exports[`Menu component tests Menu default 1`] = `
4
4
  <View
5
5
  accessibilityActions={Array []}
6
6
  accessibilityLabel="Default"
@@ -65,7 +65,7 @@ exports[`Checkbox component tests Menu default 1`] = `
65
65
  </View>
66
66
  `;
67
67
 
68
- exports[`Checkbox component tests Menu defaultOpen 1`] = `
68
+ exports[`Menu component tests Menu defaultOpen 1`] = `
69
69
  Array [
70
70
  <View
71
71
  accessibilityActions={Array []}
@@ -273,7 +273,7 @@ Array [
273
273
  ]
274
274
  `;
275
275
 
276
- exports[`Checkbox component tests Menu open 1`] = `
276
+ exports[`Menu component tests Menu open 1`] = `
277
277
  Array [
278
278
  <View
279
279
  accessibilityActions={Array []}
@@ -434,7 +434,7 @@ Array [
434
434
  ]
435
435
  `;
436
436
 
437
- exports[`Checkbox component tests Menu open checkbox and divider 1`] = `
437
+ exports[`Menu component tests Menu open checkbox and divider 1`] = `
438
438
  Array [
439
439
  <View
440
440
  accessibilityActions={Array []}
@@ -780,7 +780,7 @@ Array [
780
780
  ]
781
781
  `;
782
782
 
783
- exports[`Checkbox component tests Menu open checkbox checked 1`] = `
783
+ exports[`Menu component tests Menu open checkbox checked 1`] = `
784
784
  Array [
785
785
  <View
786
786
  accessibilityActions={Array []}
@@ -1126,7 +1126,7 @@ Array [
1126
1126
  ]
1127
1127
  `;
1128
1128
 
1129
- exports[`Checkbox component tests Menu open checkbox defaultChecked 1`] = `
1129
+ exports[`Menu component tests Menu open checkbox defaultChecked 1`] = `
1130
1130
  Array [
1131
1131
  <View
1132
1132
  accessibilityActions={Array []}
@@ -1472,7 +1472,7 @@ Array [
1472
1472
  ]
1473
1473
  `;
1474
1474
 
1475
- exports[`Checkbox component tests Menu open radio 1`] = `
1475
+ exports[`Menu component tests Menu open radio 1`] = `
1476
1476
  Array [
1477
1477
  <View
1478
1478
  accessibilityActions={Array []}
@@ -1806,7 +1806,7 @@ Array [
1806
1806
  ]
1807
1807
  `;
1808
1808
 
1809
- exports[`Checkbox component tests Menu submenu 1`] = `
1809
+ exports[`Menu component tests Menu submenu 1`] = `
1810
1810
  Array [
1811
1811
  <View
1812
1812
  accessibilityActions={Array []}
@@ -1,11 +0,0 @@
1
- import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
2
- /**
3
- * Creates a merged set of props between the MenuTrigger's child component's props
4
- * and the props that the MenuTrigger wants its child to have.
5
- *
6
- * Because children are not accessible in the outer render, we deal with the merge in this function.
7
- */
8
- export declare const getRevisedProps: typeof getRevisedPropsWorker;
9
- declare function getRevisedPropsWorker(state: MenuTriggerState, props: any): MenuTriggerChildProps;
10
- export {};
11
- //# sourceMappingURL=getRevisedProps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRevisedProps.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,8BAAiC,CAAC;AAC9D,iBAAS,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,GAAG,qBAAqB,CAuCzF"}
@@ -1,45 +0,0 @@
1
- import { __assign, __spreadArray } from "tslib";
2
- import { memoize } from '@fluentui-react-native/framework';
3
- import { isMouseEvent } from '@fluentui-react-native/interactive-hooks';
4
- /**
5
- * Creates a merged set of props between the MenuTrigger's child component's props
6
- * and the props that the MenuTrigger wants its child to have.
7
- *
8
- * Because children are not accessible in the outer render, we deal with the merge in this function.
9
- */
10
- export var getRevisedProps = memoize(getRevisedPropsWorker);
11
- function getRevisedPropsWorker(state, props) {
12
- var revisedProps = __assign({}, state.props);
13
- if (props.accessibilityState) {
14
- revisedProps.accessibilityState = __assign(__assign({}, state.props.accessibilityState), props.accessibilityState);
15
- }
16
- if (props.accessibilityActions) {
17
- revisedProps.accessibilityActions = __spreadArray(__spreadArray([], state.props.accessibilityActions, true), props.accessibilityActions, true);
18
- }
19
- if (props.onAccessibilityAction) {
20
- revisedProps.onAccessibilityAction = function (e) {
21
- state.props.onAccessibilityAction(e);
22
- props.onAccessibilityAction(e);
23
- };
24
- }
25
- if (props.onClick) {
26
- revisedProps.onClick = function (e) {
27
- state.props.onClick(e);
28
- props.onClick(e);
29
- };
30
- }
31
- if (props.onHoverIn) {
32
- revisedProps.onHoverIn = function (e) {
33
- state.props.onHoverIn(isMouseEvent(e) && e);
34
- props.onHoverIn(e);
35
- };
36
- }
37
- if (props.onHoverOut) {
38
- revisedProps.onHoverOut = function (e) {
39
- state.props.onHoverOut(isMouseEvent(e) && e);
40
- props.onHoverOut(e);
41
- };
42
- }
43
- return __assign({}, revisedProps);
44
- }
45
- //# sourceMappingURL=getRevisedProps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRevisedProps.js","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAoB,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAG1F;;;;;GAKG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC9D,SAAS,qBAAqB,CAAC,KAAuB,EAAE,KAAU;IAChE,IAAM,YAAY,gBAAQ,KAAK,CAAC,KAAK,CAAE,CAAC;IACxC,IAAI,KAAK,CAAC,kBAAkB,EAAE;QAC5B,YAAY,CAAC,kBAAkB,yBAAQ,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAK,KAAK,CAAC,kBAAkB,CAAE,CAAC;KACtG;IAED,IAAI,KAAK,CAAC,oBAAoB,EAAE;QAC9B,YAAY,CAAC,oBAAoB,mCAAO,KAAK,CAAC,KAAK,CAAC,oBAAoB,SAAK,KAAK,CAAC,oBAAoB,OAAC,CAAC;KAC1G;IAED,IAAI,KAAK,CAAC,qBAAqB,EAAE;QAC/B,YAAY,CAAC,qBAAqB,GAAG,UAAC,CAA2B;YAC/D,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,YAAY,CAAC,OAAO,GAAG,UAAC,CAAmB;YACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,YAAY,CAAC,SAAS,GAAG,UAAC,CAAmB;YAC3C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,YAAY,CAAC,UAAU,GAAG,UAAC,CAAmB;YAC5C,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;KACH;IAED,oBAAY,YAAY,EAAG;AAC7B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
2
- /**
3
- * Creates a merged set of props between the MenuTrigger's child component's props
4
- * and the props that the MenuTrigger wants its child to have.
5
- *
6
- * Because children are not accessible in the outer render, we deal with the merge in this function.
7
- */
8
- export declare const getRevisedProps: typeof getRevisedPropsWorker;
9
- declare function getRevisedPropsWorker(state: MenuTriggerState, props: any): MenuTriggerChildProps;
10
- export {};
11
- //# sourceMappingURL=getRevisedProps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRevisedProps.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,8BAAiC,CAAC;AAC9D,iBAAS,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,GAAG,qBAAqB,CAuCzF"}
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRevisedProps = void 0;
4
- var tslib_1 = require("tslib");
5
- var framework_1 = require("@fluentui-react-native/framework");
6
- var interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
7
- /**
8
- * Creates a merged set of props between the MenuTrigger's child component's props
9
- * and the props that the MenuTrigger wants its child to have.
10
- *
11
- * Because children are not accessible in the outer render, we deal with the merge in this function.
12
- */
13
- exports.getRevisedProps = (0, framework_1.memoize)(getRevisedPropsWorker);
14
- function getRevisedPropsWorker(state, props) {
15
- var revisedProps = (0, tslib_1.__assign)({}, state.props);
16
- if (props.accessibilityState) {
17
- revisedProps.accessibilityState = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, state.props.accessibilityState), props.accessibilityState);
18
- }
19
- if (props.accessibilityActions) {
20
- revisedProps.accessibilityActions = (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], state.props.accessibilityActions, true), props.accessibilityActions, true);
21
- }
22
- if (props.onAccessibilityAction) {
23
- revisedProps.onAccessibilityAction = function (e) {
24
- state.props.onAccessibilityAction(e);
25
- props.onAccessibilityAction(e);
26
- };
27
- }
28
- if (props.onClick) {
29
- revisedProps.onClick = function (e) {
30
- state.props.onClick(e);
31
- props.onClick(e);
32
- };
33
- }
34
- if (props.onHoverIn) {
35
- revisedProps.onHoverIn = function (e) {
36
- state.props.onHoverIn((0, interactive_hooks_1.isMouseEvent)(e) && e);
37
- props.onHoverIn(e);
38
- };
39
- }
40
- if (props.onHoverOut) {
41
- revisedProps.onHoverOut = function (e) {
42
- state.props.onHoverOut((0, interactive_hooks_1.isMouseEvent)(e) && e);
43
- props.onHoverOut(e);
44
- };
45
- }
46
- return (0, tslib_1.__assign)({}, revisedProps);
47
- }
48
- //# sourceMappingURL=getRevisedProps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRevisedProps.js","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":";;;;AACA,8DAA2D;AAC3D,8EAA0F;AAG1F;;;;;GAKG;AACU,QAAA,eAAe,GAAG,IAAA,mBAAO,EAAC,qBAAqB,CAAC,CAAC;AAC9D,SAAS,qBAAqB,CAAC,KAAuB,EAAE,KAAU;IAChE,IAAM,YAAY,6BAAQ,KAAK,CAAC,KAAK,CAAE,CAAC;IACxC,IAAI,KAAK,CAAC,kBAAkB,EAAE;QAC5B,YAAY,CAAC,kBAAkB,mDAAQ,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAK,KAAK,CAAC,kBAAkB,CAAE,CAAC;KACtG;IAED,IAAI,KAAK,CAAC,oBAAoB,EAAE;QAC9B,YAAY,CAAC,oBAAoB,6DAAO,KAAK,CAAC,KAAK,CAAC,oBAAoB,SAAK,KAAK,CAAC,oBAAoB,OAAC,CAAC;KAC1G;IAED,IAAI,KAAK,CAAC,qBAAqB,EAAE;QAC/B,YAAY,CAAC,qBAAqB,GAAG,UAAC,CAA2B;YAC/D,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,YAAY,CAAC,OAAO,GAAG,UAAC,CAAmB;YACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,YAAY,CAAC,SAAS,GAAG,UAAC,CAAmB;YAC3C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAA,gCAAY,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,YAAY,CAAC,UAAU,GAAG,UAAC,CAAmB;YAC5C,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAA,gCAAY,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;KACH;IAED,iCAAY,YAAY,EAAG;AAC7B,CAAC"}
@@ -1,52 +0,0 @@
1
- import { AccessibilityActionEvent } from 'react-native';
2
- import { memoize } from '@fluentui-react-native/framework';
3
- import { InteractionEvent, isMouseEvent } from '@fluentui-react-native/interactive-hooks';
4
- import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
5
-
6
- /**
7
- * Creates a merged set of props between the MenuTrigger's child component's props
8
- * and the props that the MenuTrigger wants its child to have.
9
- *
10
- * Because children are not accessible in the outer render, we deal with the merge in this function.
11
- */
12
- export const getRevisedProps = memoize(getRevisedPropsWorker);
13
- function getRevisedPropsWorker(state: MenuTriggerState, props: any): MenuTriggerChildProps {
14
- const revisedProps = { ...state.props };
15
- if (props.accessibilityState) {
16
- revisedProps.accessibilityState = { ...state.props.accessibilityState, ...props.accessibilityState };
17
- }
18
-
19
- if (props.accessibilityActions) {
20
- revisedProps.accessibilityActions = [...state.props.accessibilityActions, ...props.accessibilityActions];
21
- }
22
-
23
- if (props.onAccessibilityAction) {
24
- revisedProps.onAccessibilityAction = (e: AccessibilityActionEvent) => {
25
- state.props.onAccessibilityAction(e);
26
- props.onAccessibilityAction(e);
27
- };
28
- }
29
-
30
- if (props.onClick) {
31
- revisedProps.onClick = (e: InteractionEvent) => {
32
- state.props.onClick(e);
33
- props.onClick(e);
34
- };
35
- }
36
-
37
- if (props.onHoverIn) {
38
- revisedProps.onHoverIn = (e: InteractionEvent) => {
39
- state.props.onHoverIn(isMouseEvent(e) && e);
40
- props.onHoverIn(e);
41
- };
42
- }
43
-
44
- if (props.onHoverOut) {
45
- revisedProps.onHoverOut = (e: InteractionEvent) => {
46
- state.props.onHoverOut(isMouseEvent(e) && e);
47
- props.onHoverOut(e);
48
- };
49
- }
50
-
51
- return { ...revisedProps };
52
- }