@fluentui-react-native/menu 0.12.0 → 0.13.0

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 (34) hide show
  1. package/CHANGELOG.json +16 -1
  2. package/CHANGELOG.md +10 -2
  3. package/lib/MenuItem/MenuItem.js +1 -1
  4. package/lib/MenuItem/MenuItem.js.map +1 -1
  5. package/lib/MenuItem/useMenuItem.d.ts.map +1 -1
  6. package/lib/MenuItem/useMenuItem.js +34 -6
  7. package/lib/MenuItem/useMenuItem.js.map +1 -1
  8. package/lib/MenuItemCheckbox/MenuItemCheckbox.js +1 -1
  9. package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  10. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
  11. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +12 -8
  12. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  13. package/lib/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -1
  14. package/lib/MenuItemRadio/useMenuItemRadio.js +5 -3
  15. package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  16. package/lib-commonjs/MenuItem/MenuItem.js +1 -1
  17. package/lib-commonjs/MenuItem/MenuItem.js.map +1 -1
  18. package/lib-commonjs/MenuItem/useMenuItem.d.ts.map +1 -1
  19. package/lib-commonjs/MenuItem/useMenuItem.js +32 -4
  20. package/lib-commonjs/MenuItem/useMenuItem.js.map +1 -1
  21. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js +1 -1
  22. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  23. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
  24. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +12 -8
  25. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  26. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -1
  27. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js +5 -3
  28. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/MenuItem/MenuItem.tsx +1 -1
  31. package/src/MenuItem/useMenuItem.ts +48 -8
  32. package/src/MenuItemCheckbox/MenuItemCheckbox.tsx +1 -1
  33. package/src/MenuItemCheckbox/useMenuItemCheckbox.ts +12 -8
  34. package/src/MenuItemRadio/useMenuItemRadio.ts +5 -3
package/CHANGELOG.json CHANGED
@@ -2,7 +2,22 @@
2
2
  "name": "@fluentui-react-native/menu",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 01 Jun 2022 00:08:33 GMT",
5
+ "date": "Wed, 01 Jun 2022 18:18:27 GMT",
6
+ "tag": "@fluentui-react-native/menu_v0.13.0",
7
+ "version": "0.13.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "author": "ruaraki@microsoft.com",
12
+ "package": "@fluentui-react-native/menu",
13
+ "commit": "7c7b95a0c0697315aefdbb1a849e0017dcfc63c2",
14
+ "comment": "Fix keyboarding"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Wed, 01 Jun 2022 00:08:47 GMT",
6
21
  "tag": "@fluentui-react-native/menu_v0.12.0",
7
22
  "version": "0.12.0",
8
23
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,20 @@
1
1
  # Change Log - @fluentui-react-native/menu
2
2
 
3
- This log was last generated on Wed, 01 Jun 2022 00:08:33 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 01 Jun 2022 18:18:27 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.13.0
8
+
9
+ Wed, 01 Jun 2022 18:18:27 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - Fix keyboarding (ruaraki@microsoft.com)
14
+
7
15
  ## 0.12.0
8
16
 
9
- Wed, 01 Jun 2022 00:08:33 GMT
17
+ Wed, 01 Jun 2022 00:08:47 GMT
10
18
 
11
19
  ### Minor changes
12
20
 
@@ -14,7 +14,7 @@ export var MenuItem = compose(__assign(__assign({ displayName: menuItemName }, s
14
14
  submenuIndicator: SvgXml,
15
15
  }, useRender: function (userProps, useSlots) {
16
16
  var menuItem = useMenuItem(userProps);
17
- var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
17
+ var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer] || userProps[layer]; });
18
18
  return function (final) {
19
19
  var mergedProps = mergeProps(menuItem.props, final);
20
20
  var chevronXml = I18nManager.isRTL
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItem.tsx"],"names":[],"mappings":";AAAA,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAY,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EAAE,YAAY,EAA+B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,CAAC,IAAM,QAAQ,GAAG,OAAO,qBAC7B,WAAW,EAAE,YAAY,IACtB,eAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,gBAAgB,EAAE,MAAM;KACzB,EACD,SAAS,EAAE,UAAC,SAAwB,EAAE,QAAgC;QACpE,IAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,UAAC,KAAoB;YAC1B,IAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK;gBAClC,CAAC,CAAC,+YAGO;gBACT,CAAC,CAAC,+YAGO,CAAC;YAEZ,OAAO,CACL,UAAC,KAAK,CAAC,IAAI,eAAK,WAAW;gBACxB,QAAQ,CAAC,aAAa,IAAI,UAAC,KAAK,CAAC,SAAS,OAAG;gBAC7C,WAAW,CAAC,OAAO,IAAI,UAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB;gBAC3E,QAAQ,CAAC,UAAU,IAAI,UAAC,KAAK,CAAC,gBAAgB,IAAC,GAAG,EAAE,UAAU,GAAI,CACxD,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItem.tsx"],"names":[],"mappings":";AAAA,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAY,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EAAE,YAAY,EAA+B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,CAAC,IAAM,QAAQ,GAAG,OAAO,qBAC7B,WAAW,EAAE,YAAY,IACtB,eAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,gBAAgB,EAAE,MAAM;KACzB,EACD,SAAS,EAAE,UAAC,SAAwB,EAAE,QAAgC;QACpE,IAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAzC,CAAyC,CAAC,CAAC;QAEjG,OAAO,UAAC,KAAoB;YAC1B,IAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK;gBAClC,CAAC,CAAC,+YAGO;gBACT,CAAC,CAAC,+YAGO,CAAC;YAEZ,OAAO,CACL,UAAC,KAAK,CAAC,IAAI,eAAK,WAAW;gBACxB,QAAQ,CAAC,aAAa,IAAI,UAAC,KAAK,CAAC,SAAS,OAAG;gBAC7C,WAAW,CAAC,OAAO,IAAI,UAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB;gBAC3E,QAAQ,CAAC,UAAU,IAAI,UAAC,KAAK,CAAC,gBAAgB,IAAC,GAAG,EAAE,UAAU,GAAI,CACxD,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOhE,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,aA2BlD,CAAC"}
1
+ {"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUhE,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,aAgElD,CAAC"}
@@ -1,21 +1,49 @@
1
- import { __assign, __rest } from "tslib";
1
+ import { __assign, __rest, __spreadArray } from "tslib";
2
2
  import * as React from 'react';
3
+ import { I18nManager } from 'react-native';
3
4
  import { memoize } from '@fluentui-react-native/framework';
4
- import { useAsPressable, useKeyProps } from '@fluentui-react-native/interactive-hooks';
5
+ import { isKeyPressEvent, useAsPressable, useKeyDownProps } from '@fluentui-react-native/interactive-hooks';
5
6
  import { useMenuContext } from '../context/menuContext';
6
7
  import { useMenuListContext } from '../context/menuListContext';
7
8
  import { useMenuTriggerContext } from '../context/menuTriggerContext';
9
+ var triggerKeys = [' ', 'Enter'];
10
+ var submenuTriggerKeys = __spreadArray(__spreadArray([], triggerKeys, true), ['ArrowLeft', 'ArrowRight'], false);
8
11
  export var useMenuItem = function (props) {
9
12
  // attach the pressable state handlers
10
13
  var defaultComponentRef = React.useRef(null);
11
14
  var onClick = props.onClick, accessibilityState = props.accessibilityState, _a = props.componentRef, componentRef = _a === void 0 ? defaultComponentRef : _a, disabled = props.disabled, rest = __rest(props, ["onClick", "accessibilityState", "componentRef", "disabled"]);
12
- var pressable = useAsPressable(__assign(__assign({}, rest), { disabled: disabled, onPress: onClick }));
13
- var onKeyProps = useKeyProps(onClick, ' ', 'Enter');
14
15
  var isTrigger = useMenuTriggerContext();
15
- var hasSubmenu = useMenuContext().isSubmenu && isTrigger;
16
+ var isSubmenu = useMenuContext().isSubmenu;
17
+ var hasSubmenu = isSubmenu && isTrigger;
18
+ var isInSubmenu = isSubmenu && !isTrigger;
19
+ var setOpen = useMenuContext().setOpen;
20
+ var onInvoke = React.useCallback(function (e) {
21
+ if (disabled) {
22
+ return;
23
+ }
24
+ var isRtl = I18nManager.isRTL;
25
+ if (isKeyPressEvent(e) &&
26
+ hasSubmenu &&
27
+ ((isRtl && e.nativeEvent.key === 'ArrowRight') || (!isRtl && e.nativeEvent.key === 'ArrowLeft'))) {
28
+ return;
29
+ }
30
+ if (isKeyPressEvent(e) &&
31
+ isInSubmenu &&
32
+ ((isRtl && e.nativeEvent.key === 'ArrowLeft') || (!isRtl && e.nativeEvent.key === 'ArrowRight'))) {
33
+ return;
34
+ }
35
+ onClick === null || onClick === void 0 ? void 0 : onClick(e);
36
+ if (!hasSubmenu) {
37
+ setOpen(e, false /*isOpen*/);
38
+ }
39
+ }, [disabled, hasSubmenu, isInSubmenu, onClick, setOpen]);
40
+ var pressable = useAsPressable(__assign(__assign({}, rest), { disabled: disabled, onPress: onInvoke }));
41
+ var keys = isSubmenu ? submenuTriggerKeys : triggerKeys;
42
+ // Explicitly override onKeyDown to override the native behavior of moving focus with arrow keys.
43
+ var onKeyDownProps = useKeyDownProps.apply(void 0, __spreadArray([onInvoke], keys, false));
16
44
  var hasCheckmarks = useMenuListContext().hasCheckmarks;
17
45
  return {
18
- props: __assign(__assign(__assign({}, pressable.props), { accessible: true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || props.onClick, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: !disabled, ref: componentRef }), onKeyProps),
46
+ props: __assign(__assign(__assign({}, pressable.props), { accessible: true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || onInvoke, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: true, ref: componentRef }), onKeyDownProps),
19
47
  state: pressable.state,
20
48
  hasSubmenu: hasSubmenu,
21
49
  hasCheckmarks: hasCheckmarks,
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,KAAoB;IAC9C,sCAAsC;IACtC,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,IAAA,OAAO,GAAgF,KAAK,QAArF,EAAE,kBAAkB,GAA4D,KAAK,mBAAjE,EAAE,KAA0D,KAAK,aAA7B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAAE,QAAQ,GAAc,KAAK,SAAnB,EAAK,IAAI,UAAK,KAAK,EAA9F,6DAAsF,CAAF,CAAW;IACrG,IAAM,SAAS,GAAG,cAAc,uBAAM,IAAI,KAAE,QAAQ,UAAA,EAAE,OAAO,EAAE,OAAO,IAAG,CAAC;IAC1E,IAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,IAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;IAC1C,IAAM,UAAU,GAAG,cAAc,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC;IAC3D,IAAM,aAAa,GAAG,kBAAkB,EAAE,CAAC,aAAa,CAAC;IAEzD,OAAO;QACL,KAAK,iCACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,UAAU,EAC7B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EACvE,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,GAAG,EAAE,YAAY,KACd,UAAU,CACd;QACD,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,UAAU,YAAA;QACV,aAAa,eAAA;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,qBAAqB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,kBAAuC;IAC7F,IAAI,kBAAkB,EAAE;QACtB,kBAAS,QAAQ,UAAA,IAAK,kBAAkB,EAAG;KAC5C;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export var MenuItemCheckbox = compose(__assign(__assign({ displayName: menuItemC
13
13
  content: Text,
14
14
  }, useRender: function (userProps, useSlots) {
15
15
  var menuItem = useMenuItemCheckbox(userProps);
16
- var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
16
+ var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer] || userProps[layer]; });
17
17
  return menuItemFinalRender(menuItem, Slots);
18
18
  } }));
19
19
  export var menuItemFinalRender = function (menuItem, Slots) {
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";AAAA,qBAAqB;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAmB,SAAS,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EACL,oBAAoB,GAKrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,CAAC,IAAM,gBAAgB,GAAG,OAAO,qBACrC,WAAW,EAAE,oBAAoB,IAC9B,eAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,IAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,IACD,CAAC;AAEH,MAAM,CAAC,IAAM,mBAAmB,GAAG,UACjC,QAA+B,EAC/B,KAAuC;IAEvC,OAAO,UAAC,KAA4B;QAClC,IAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,IAAM,YAAY,GAAG,6XAGd,CAAC;QAER,OAAO,CACL,UAAC,KAAK,CAAC,IAAI,eAAK,WAAW;YACzB,UAAC,KAAK,CAAC,SAAS,IAAC,GAAG,EAAE,YAAY,GAAI;YACrC,WAAW,CAAC,OAAO,IAAI,UAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CACjE,CACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";AAAA,qBAAqB;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAmB,SAAS,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EACL,oBAAoB,GAKrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,CAAC,IAAM,gBAAgB,GAAG,OAAO,qBACrC,WAAW,EAAE,oBAAoB,IAC9B,eAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,IAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAzC,CAAyC,CAAC,CAAC;QAEjG,OAAO,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,IACD,CAAC;AAEH,MAAM,CAAC,IAAM,mBAAmB,GAAG,UACjC,QAA+B,EAC/B,KAAuC;IAEvC,OAAO,UAAC,KAA4B;QAClC,IAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,IAAM,YAAY,GAAG,6XAGd,CAAC;QAER,OAAO,CACL,UAAC,KAAK,CAAC,IAAI,eAAK,WAAW;YACzB,UAAC,KAAK,CAAC,SAAS,IAAC,GAAG,EAAE,YAAY,GAAI;YACrC,WAAW,CAAC,OAAO,IAAI,UAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CACjE,CACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAKjB,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAclE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,qBAwDF,CAAC"}
1
+ {"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAKjB,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAgBlE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,qBA0DF,CAAC"}
@@ -6,13 +6,15 @@ import { useMenuListContext } from '../context/menuListContext';
6
6
  var defaultAccessibilityActions = [{ name: 'Toggle' }];
7
7
  export var useMenuItemCheckbox = function (props) {
8
8
  var _a;
9
- var name = props.name;
9
+ var disabled = props.disabled, name = props.name;
10
10
  var context = useMenuListContext();
11
11
  var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
12
12
  var onCheckedChange = context.onCheckedChange;
13
13
  var toggleChecked = React.useCallback(function (e) {
14
- onCheckedChange(e, name, !checked);
15
- }, [checked, name, onCheckedChange]);
14
+ if (!disabled) {
15
+ onCheckedChange(e, name, !checked);
16
+ }
17
+ }, [checked, disabled, name, onCheckedChange]);
16
18
  return useMenuCheckboxInteraction(props, toggleChecked);
17
19
  };
18
20
  var getAccessibilityState = memoize(getAccessibilityStateWorker);
@@ -44,14 +46,16 @@ export var useMenuCheckboxInteraction = function (props, toggleCallback) {
44
46
  var accessibilityActionsProp = accessibilityActions
45
47
  ? __spreadArray(__spreadArray([], defaultAccessibilityActions, true), accessibilityActions, true) : defaultAccessibilityActions;
46
48
  var onAccessibilityActionProp = React.useCallback(function (event) {
47
- if (event.nativeEvent.actionName === 'Toggle') {
48
- toggleCallback(event);
49
+ if (!disabled) {
50
+ if (event.nativeEvent.actionName === 'Toggle') {
51
+ toggleCallback(event);
52
+ }
53
+ onAccessibilityAction && onAccessibilityAction(event);
49
54
  }
50
- onAccessibilityAction && onAccessibilityAction(event);
51
- }, [toggleCallback, onAccessibilityAction]);
55
+ }, [disabled, toggleCallback, onAccessibilityAction]);
52
56
  var state = __assign(__assign({}, pressable.state), { disabled: !!props.disabled, checked: checked });
53
57
  return {
54
- props: __assign(__assign(__assign({}, pressable.props), { accessible: true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), enableFocusRing: true, focusable: !disabled, onAccessibilityAction: onAccessibilityActionProp, ref: buttonRef }), onKeyProps),
58
+ props: __assign(__assign(__assign({}, pressable.props), { accessible: true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), enableFocusRing: true, focusable: true, onAccessibilityAction: onAccessibilityActionProp, ref: buttonRef }), onKeyProps),
55
59
  state: state,
56
60
  };
57
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemRadio.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAG1G,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,qBAc/D,CAAC"}
1
+ {"version":3,"file":"useMenuItemRadio.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAG1G,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,qBAgB/D,CAAC"}
@@ -3,13 +3,15 @@ import { useMenuListContext } from '../context/menuListContext';
3
3
  import { useMenuCheckboxInteraction } from '../MenuItemCheckbox/useMenuItemCheckbox';
4
4
  export var useMenuItemRadio = function (props) {
5
5
  var _a;
6
- var name = props.name;
6
+ var disabled = props.disabled, name = props.name;
7
7
  var context = useMenuListContext();
8
8
  var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
9
9
  var selectRadio = context.selectRadio;
10
10
  var toggleChecked = React.useCallback(function (e) {
11
- selectRadio(e, name, !checked);
12
- }, [checked, name, selectRadio]);
11
+ if (!disabled) {
12
+ selectRadio(e, name, !checked);
13
+ }
14
+ }, [checked, disabled, name, selectRadio]);
13
15
  return useMenuCheckboxInteraction(props, toggleChecked);
14
16
  };
15
17
  //# sourceMappingURL=useMenuItemRadio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemRadio.js","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,KAA4B;;IACnD,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IACvB,IAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAC7B,CAAC;IAEF,OAAO,0BAA0B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC"}
1
+ {"version":3,"file":"useMenuItemRadio.js","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,KAA4B;;IACnD,IAAA,QAAQ,GAAW,KAAK,SAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;IACjC,IAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,IAAI,CAAC,QAAQ,EAAE;YACb,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;SAChC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CACvC,CAAC;IAEF,OAAO,0BAA0B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC"}
@@ -17,7 +17,7 @@ exports.MenuItem = (0, framework_1.compose)((0, tslib_1.__assign)((0, tslib_1.__
17
17
  submenuIndicator: react_native_svg_1.SvgXml,
18
18
  }, useRender: function (userProps, useSlots) {
19
19
  var menuItem = (0, useMenuItem_1.useMenuItem)(userProps);
20
- var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
20
+ var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer] || userProps[layer]; });
21
21
  return function (final) {
22
22
  var mergedProps = (0, framework_1.mergeProps)(menuItem.props, final);
23
23
  var chevronXml = react_native_1.I18nManager.isRTL
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItem.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAiD;AACjD,qDAA0C;AAC1C,8DAA4F;AAC5F,8EAAgE;AAChE,mDAA6E;AAC7E,6CAA4C;AAC5C,uDAAqD;AAExC,QAAA,QAAQ,GAAG,IAAA,mBAAO,gDAC7B,WAAW,EAAE,6BAAY,IACtB,kCAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,mBAAI;QACf,OAAO,EAAE,wBAAI;QACb,gBAAgB,EAAE,yBAAM;KACzB,EACD,SAAS,EAAE,UAAC,SAAwB,EAAE,QAAgC;QACpE,IAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,UAAC,KAAoB;YAC1B,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtD,IAAM,UAAU,GAAG,0BAAW,CAAC,KAAK;gBAClC,CAAC,CAAC,+YAGO;gBACT,CAAC,CAAC,+YAGO,CAAC;YAEZ,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;gBACxB,QAAQ,CAAC,aAAa,IAAI,2BAAC,KAAK,CAAC,SAAS,OAAG;gBAC7C,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB;gBAC3E,QAAQ,CAAC,UAAU,IAAI,2BAAC,KAAK,CAAC,gBAAgB,IAAC,GAAG,EAAE,UAAU,GAAI,CACxD,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItem.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAiD;AACjD,qDAA0C;AAC1C,8DAA4F;AAC5F,8EAAgE;AAChE,mDAA6E;AAC7E,6CAA4C;AAC5C,uDAAqD;AAExC,QAAA,QAAQ,GAAG,IAAA,mBAAO,gDAC7B,WAAW,EAAE,6BAAY,IACtB,kCAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,mBAAI;QACf,OAAO,EAAE,wBAAI;QACb,gBAAgB,EAAE,yBAAM;KACzB,EACD,SAAS,EAAE,UAAC,SAAwB,EAAE,QAAgC;QACpE,IAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAzC,CAAyC,CAAC,CAAC;QAEjG,OAAO,UAAC,KAAoB;YAC1B,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtD,IAAM,UAAU,GAAG,0BAAW,CAAC,KAAK;gBAClC,CAAC,CAAC,+YAGO;gBACT,CAAC,CAAC,+YAGO,CAAC;YAEZ,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;gBACxB,QAAQ,CAAC,aAAa,IAAI,2BAAC,KAAK,CAAC,SAAS,OAAG;gBAC7C,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB;gBAC3E,QAAQ,CAAC,UAAU,IAAI,2BAAC,KAAK,CAAC,gBAAgB,IAAC,GAAG,EAAE,UAAU,GAAI,CACxD,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOhE,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,aA2BlD,CAAC"}
1
+ {"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUhE,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,aAgElD,CAAC"}
@@ -3,22 +3,50 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useMenuItem = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var React = (0, tslib_1.__importStar)(require("react"));
6
+ var react_native_1 = require("react-native");
6
7
  var framework_1 = require("@fluentui-react-native/framework");
7
8
  var interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
8
9
  var menuContext_1 = require("../context/menuContext");
9
10
  var menuListContext_1 = require("../context/menuListContext");
10
11
  var menuTriggerContext_1 = require("../context/menuTriggerContext");
12
+ var triggerKeys = [' ', 'Enter'];
13
+ var submenuTriggerKeys = (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], triggerKeys, true), ['ArrowLeft', 'ArrowRight'], false);
11
14
  var useMenuItem = function (props) {
12
15
  // attach the pressable state handlers
13
16
  var defaultComponentRef = React.useRef(null);
14
17
  var onClick = props.onClick, accessibilityState = props.accessibilityState, _a = props.componentRef, componentRef = _a === void 0 ? defaultComponentRef : _a, disabled = props.disabled, rest = (0, tslib_1.__rest)(props, ["onClick", "accessibilityState", "componentRef", "disabled"]);
15
- var pressable = (0, interactive_hooks_1.useAsPressable)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, rest), { disabled: disabled, onPress: onClick }));
16
- var onKeyProps = (0, interactive_hooks_1.useKeyProps)(onClick, ' ', 'Enter');
17
18
  var isTrigger = (0, menuTriggerContext_1.useMenuTriggerContext)();
18
- var hasSubmenu = (0, menuContext_1.useMenuContext)().isSubmenu && isTrigger;
19
+ var isSubmenu = (0, menuContext_1.useMenuContext)().isSubmenu;
20
+ var hasSubmenu = isSubmenu && isTrigger;
21
+ var isInSubmenu = isSubmenu && !isTrigger;
22
+ var setOpen = (0, menuContext_1.useMenuContext)().setOpen;
23
+ var onInvoke = React.useCallback(function (e) {
24
+ if (disabled) {
25
+ return;
26
+ }
27
+ var isRtl = react_native_1.I18nManager.isRTL;
28
+ if ((0, interactive_hooks_1.isKeyPressEvent)(e) &&
29
+ hasSubmenu &&
30
+ ((isRtl && e.nativeEvent.key === 'ArrowRight') || (!isRtl && e.nativeEvent.key === 'ArrowLeft'))) {
31
+ return;
32
+ }
33
+ if ((0, interactive_hooks_1.isKeyPressEvent)(e) &&
34
+ isInSubmenu &&
35
+ ((isRtl && e.nativeEvent.key === 'ArrowLeft') || (!isRtl && e.nativeEvent.key === 'ArrowRight'))) {
36
+ return;
37
+ }
38
+ onClick === null || onClick === void 0 ? void 0 : onClick(e);
39
+ if (!hasSubmenu) {
40
+ setOpen(e, false /*isOpen*/);
41
+ }
42
+ }, [disabled, hasSubmenu, isInSubmenu, onClick, setOpen]);
43
+ var pressable = (0, interactive_hooks_1.useAsPressable)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, rest), { disabled: disabled, onPress: onInvoke }));
44
+ var keys = isSubmenu ? submenuTriggerKeys : triggerKeys;
45
+ // Explicitly override onKeyDown to override the native behavior of moving focus with arrow keys.
46
+ var onKeyDownProps = interactive_hooks_1.useKeyDownProps.apply(void 0, (0, tslib_1.__spreadArray)([onInvoke], keys, false));
19
47
  var hasCheckmarks = (0, menuListContext_1.useMenuListContext)().hasCheckmarks;
20
48
  return {
21
- props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || props.onClick, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: !disabled, ref: componentRef }), onKeyProps),
49
+ props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || onInvoke, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: true, ref: componentRef }), onKeyDownProps),
22
50
  state: pressable.state,
23
51
  hasSubmenu: hasSubmenu,
24
52
  hasCheckmarks: hasCheckmarks,
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAG/B,8DAA2D;AAC3D,8EAAuF;AACvF,sDAAwD;AACxD,8DAAgE;AAChE,oEAAsE;AAE/D,IAAM,WAAW,GAAG,UAAC,KAAoB;IAC9C,sCAAsC;IACtC,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,IAAA,OAAO,GAAgF,KAAK,QAArF,EAAE,kBAAkB,GAA4D,KAAK,mBAAjE,EAAE,KAA0D,KAAK,aAA7B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAAE,QAAQ,GAAc,KAAK,SAAnB,EAAK,IAAI,uBAAK,KAAK,EAA9F,6DAAsF,CAAF,CAAW;IACrG,IAAM,SAAS,GAAG,IAAA,kCAAc,kDAAM,IAAI,KAAE,QAAQ,UAAA,EAAE,OAAO,EAAE,OAAO,IAAG,CAAC;IAC1E,IAAM,UAAU,GAAG,IAAA,+BAAW,EAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,IAAM,SAAS,GAAG,IAAA,0CAAqB,GAAE,CAAC;IAC1C,IAAM,UAAU,GAAG,IAAA,4BAAc,GAAE,CAAC,SAAS,IAAI,SAAS,CAAC;IAC3D,IAAM,aAAa,GAAG,IAAA,oCAAkB,GAAE,CAAC,aAAa,CAAC;IAEzD,OAAO;QACL,KAAK,wEACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,UAAU,EAC7B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EACvE,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,GAAG,EAAE,YAAY,KACd,UAAU,CACd;QACD,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,UAAU,YAAA;QACV,aAAa,eAAA;KACd,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,WAAW,eA2BtB;AAEF,IAAM,qBAAqB,GAAG,IAAA,mBAAO,EAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,kBAAuC;IAC7F,IAAI,kBAAkB,EAAE;QACtB,+BAAS,QAAQ,UAAA,IAAK,kBAAkB,EAAG;KAC5C;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ exports.MenuItemCheckbox = (0, framework_1.compose)((0, tslib_1.__assign)((0, ts
16
16
  content: experimental_text_1.Text,
17
17
  }, useRender: function (userProps, useSlots) {
18
18
  var menuItem = (0, useMenuItemCheckbox_1.useMenuItemCheckbox)(userProps);
19
- var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
19
+ var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer] || userProps[layer]; });
20
20
  return (0, exports.menuItemFinalRender)(menuItem, Slots);
21
21
  } }));
22
22
  var menuItemFinalRender = function (menuItem, Slots) {
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAoC;AACpC,qDAA0C;AAC1C,8DAAmG;AACnG,8EAAgE;AAChE,mEAMkC;AAClC,6DAA4D;AAC5D,uEAA6D;AAEhD,QAAA,gBAAgB,GAAG,IAAA,mBAAO,gDACrC,WAAW,EAAE,6CAAoB,IAC9B,0CAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,yBAAM;QACjB,OAAO,EAAE,wBAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,IAAA,yCAAmB,EAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,IAAA,2BAAmB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,IACD,CAAC;AAEI,IAAM,mBAAmB,GAAG,UACjC,QAA+B,EAC/B,KAAuC;IAEvC,OAAO,UAAC,KAA4B;QAClC,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,IAAM,YAAY,GAAG,6XAGd,CAAC;QAER,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;YACzB,2BAAC,KAAK,CAAC,SAAS,IAAC,GAAG,EAAE,YAAY,GAAI;YACrC,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CACjE,CACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
1
+ {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAoC;AACpC,qDAA0C;AAC1C,8DAAmG;AACnG,8EAAgE;AAChE,mEAMkC;AAClC,6DAA4D;AAC5D,uEAA6D;AAEhD,QAAA,gBAAgB,GAAG,IAAA,mBAAO,gDACrC,WAAW,EAAE,6CAAoB,IAC9B,0CAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,yBAAM;QACjB,OAAO,EAAE,wBAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,IAAA,yCAAmB,EAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAzC,CAAyC,CAAC,CAAC;QAEjG,OAAO,IAAA,2BAAmB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,IACD,CAAC;AAEI,IAAM,mBAAmB,GAAG,UACjC,QAA+B,EAC/B,KAAuC;IAEvC,OAAO,UAAC,KAA4B;QAClC,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,IAAM,YAAY,GAAG,6XAGd,CAAC;QAER,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;YACzB,2BAAC,KAAK,CAAC,SAAS,IAAC,GAAG,EAAE,YAAY,GAAI;YACrC,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CACjE,CACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAKjB,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAclE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,qBAwDF,CAAC"}
1
+ {"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAKjB,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAgBlE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,qBA0DF,CAAC"}
@@ -9,13 +9,15 @@ var menuListContext_1 = require("../context/menuListContext");
9
9
  var defaultAccessibilityActions = [{ name: 'Toggle' }];
10
10
  var useMenuItemCheckbox = function (props) {
11
11
  var _a;
12
- var name = props.name;
12
+ var disabled = props.disabled, name = props.name;
13
13
  var context = (0, menuListContext_1.useMenuListContext)();
14
14
  var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
15
15
  var onCheckedChange = context.onCheckedChange;
16
16
  var toggleChecked = React.useCallback(function (e) {
17
- onCheckedChange(e, name, !checked);
18
- }, [checked, name, onCheckedChange]);
17
+ if (!disabled) {
18
+ onCheckedChange(e, name, !checked);
19
+ }
20
+ }, [checked, disabled, name, onCheckedChange]);
19
21
  return (0, exports.useMenuCheckboxInteraction)(props, toggleChecked);
20
22
  };
21
23
  exports.useMenuItemCheckbox = useMenuItemCheckbox;
@@ -48,14 +50,16 @@ var useMenuCheckboxInteraction = function (props, toggleCallback) {
48
50
  var accessibilityActionsProp = accessibilityActions
49
51
  ? (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], defaultAccessibilityActions, true), accessibilityActions, true) : defaultAccessibilityActions;
50
52
  var onAccessibilityActionProp = React.useCallback(function (event) {
51
- if (event.nativeEvent.actionName === 'Toggle') {
52
- toggleCallback(event);
53
+ if (!disabled) {
54
+ if (event.nativeEvent.actionName === 'Toggle') {
55
+ toggleCallback(event);
56
+ }
57
+ onAccessibilityAction && onAccessibilityAction(event);
53
58
  }
54
- onAccessibilityAction && onAccessibilityAction(event);
55
- }, [toggleCallback, onAccessibilityAction]);
59
+ }, [disabled, toggleCallback, onAccessibilityAction]);
56
60
  var state = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.state), { disabled: !!props.disabled, checked: checked });
57
61
  return {
58
- props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), enableFocusRing: true, focusable: !disabled, onAccessibilityAction: onAccessibilityActionProp, ref: buttonRef }), onKeyProps),
62
+ props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), enableFocusRing: true, focusable: true, onAccessibilityAction: onAccessibilityActionProp, ref: buttonRef }), onKeyProps),
59
63
  state: state,
60
64
  };
61
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemRadio.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAG1G,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,qBAc/D,CAAC"}
1
+ {"version":3,"file":"useMenuItemRadio.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAG1G,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,qBAgB/D,CAAC"}
@@ -7,13 +7,15 @@ var menuListContext_1 = require("../context/menuListContext");
7
7
  var useMenuItemCheckbox_1 = require("../MenuItemCheckbox/useMenuItemCheckbox");
8
8
  var useMenuItemRadio = function (props) {
9
9
  var _a;
10
- var name = props.name;
10
+ var disabled = props.disabled, name = props.name;
11
11
  var context = (0, menuListContext_1.useMenuListContext)();
12
12
  var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
13
13
  var selectRadio = context.selectRadio;
14
14
  var toggleChecked = React.useCallback(function (e) {
15
- selectRadio(e, name, !checked);
16
- }, [checked, name, selectRadio]);
15
+ if (!disabled) {
16
+ selectRadio(e, name, !checked);
17
+ }
18
+ }, [checked, disabled, name, selectRadio]);
17
19
  return (0, useMenuItemCheckbox_1.useMenuCheckboxInteraction)(props, toggleChecked);
18
20
  };
19
21
  exports.useMenuItemRadio = useMenuItemRadio;
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemRadio.js","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAE/B,8DAAgE;AAEhE,+EAAqF;AAE9E,IAAM,gBAAgB,GAAG,UAAC,KAA4B;;IACnD,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IACvB,IAAM,OAAO,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAC7B,CAAC;IAEF,OAAO,IAAA,gDAA0B,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
1
+ {"version":3,"file":"useMenuItemRadio.js","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAE/B,8DAAgE;AAEhE,+EAAqF;AAE9E,IAAM,gBAAgB,GAAG,UAAC,KAA4B;;IACnD,IAAA,QAAQ,GAAW,KAAK,SAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;IACjC,IAAM,OAAO,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,IAAI,CAAC,QAAQ,EAAE;YACb,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;SAChC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CACvC,CAAC;IAEF,OAAO,IAAA,gDAA0B,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC;AAhBW,QAAA,gBAAgB,oBAgB3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui-react-native/menu",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
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",
@@ -18,7 +18,7 @@ export const MenuItem = compose<MenuItemType>({
18
18
  },
19
19
  useRender: (userProps: MenuItemProps, useSlots: UseSlots<MenuItemType>) => {
20
20
  const menuItem = useMenuItem(userProps);
21
- const Slots = useSlots(userProps, (layer): boolean => menuItem.state[layer]);
21
+ const Slots = useSlots(userProps, (layer): boolean => menuItem.state[layer] || userProps[layer]);
22
22
 
23
23
  return (final: MenuItemProps) => {
24
24
  const mergedProps = mergeProps(menuItem.props, final);
@@ -1,20 +1,60 @@
1
1
  import * as React from 'react';
2
- import { AccessibilityState } from 'react-native';
2
+ import { AccessibilityState, I18nManager } from 'react-native';
3
3
  import { MenuItemProps, MenuItemState } from './MenuItem.types';
4
4
  import { memoize } from '@fluentui-react-native/framework';
5
- import { useAsPressable, useKeyProps } from '@fluentui-react-native/interactive-hooks';
5
+ import { InteractionEvent, isKeyPressEvent, useAsPressable, useKeyDownProps } from '@fluentui-react-native/interactive-hooks';
6
6
  import { useMenuContext } from '../context/menuContext';
7
7
  import { useMenuListContext } from '../context/menuListContext';
8
8
  import { useMenuTriggerContext } from '../context/menuTriggerContext';
9
9
 
10
+ const triggerKeys = [' ', 'Enter'];
11
+ const submenuTriggerKeys = [...triggerKeys, 'ArrowLeft', 'ArrowRight'];
12
+
10
13
  export const useMenuItem = (props: MenuItemProps): MenuItemState => {
11
14
  // attach the pressable state handlers
12
15
  const defaultComponentRef = React.useRef(null);
13
16
  const { onClick, accessibilityState, componentRef = defaultComponentRef, disabled, ...rest } = props;
14
- const pressable = useAsPressable({ ...rest, disabled, onPress: onClick });
15
- const onKeyProps = useKeyProps(onClick, ' ', 'Enter');
16
17
  const isTrigger = useMenuTriggerContext();
17
- const hasSubmenu = useMenuContext().isSubmenu && isTrigger;
18
+ const isSubmenu = useMenuContext().isSubmenu;
19
+ const hasSubmenu = isSubmenu && isTrigger;
20
+ const isInSubmenu = isSubmenu && !isTrigger;
21
+
22
+ const setOpen = useMenuContext().setOpen;
23
+ const onInvoke = React.useCallback(
24
+ (e: InteractionEvent) => {
25
+ if (disabled) {
26
+ return;
27
+ }
28
+
29
+ const isRtl = I18nManager.isRTL;
30
+ if (
31
+ isKeyPressEvent(e) &&
32
+ hasSubmenu &&
33
+ ((isRtl && e.nativeEvent.key === 'ArrowRight') || (!isRtl && e.nativeEvent.key === 'ArrowLeft'))
34
+ ) {
35
+ return;
36
+ }
37
+ if (
38
+ isKeyPressEvent(e) &&
39
+ isInSubmenu &&
40
+ ((isRtl && e.nativeEvent.key === 'ArrowLeft') || (!isRtl && e.nativeEvent.key === 'ArrowRight'))
41
+ ) {
42
+ return;
43
+ }
44
+
45
+ onClick?.(e);
46
+ if (!hasSubmenu) {
47
+ setOpen(e, false /*isOpen*/);
48
+ }
49
+ },
50
+ [disabled, hasSubmenu, isInSubmenu, onClick, setOpen],
51
+ );
52
+
53
+ const pressable = useAsPressable({ ...rest, disabled, onPress: onInvoke });
54
+ const keys = isSubmenu ? submenuTriggerKeys : triggerKeys;
55
+
56
+ // Explicitly override onKeyDown to override the native behavior of moving focus with arrow keys.
57
+ const onKeyDownProps = useKeyDownProps(onInvoke, ...keys);
18
58
  const hasCheckmarks = useMenuListContext().hasCheckmarks;
19
59
 
20
60
  return {
@@ -22,13 +62,13 @@ export const useMenuItem = (props: MenuItemProps): MenuItemState => {
22
62
  ...pressable.props,
23
63
  accessible: true,
24
64
  accessibilityRole: 'menuitem',
25
- onAccessibilityTap: props.onAccessibilityTap || props.onClick,
65
+ onAccessibilityTap: props.onAccessibilityTap || onInvoke,
26
66
  accessibilityLabel: props.accessibilityLabel || props.content,
27
67
  accessibilityState: getAccessibilityState(disabled, accessibilityState),
28
68
  enableFocusRing: true,
29
- focusable: !disabled,
69
+ focusable: true,
30
70
  ref: componentRef,
31
- ...onKeyProps,
71
+ ...onKeyDownProps,
32
72
  },
33
73
  state: pressable.state,
34
74
  hasSubmenu,
@@ -23,7 +23,7 @@ export const MenuItemCheckbox = compose<MenuItemCheckboxType>({
23
23
  },
24
24
  useRender: (userProps: MenuItemCheckboxProps, useSlots: UseSlots<MenuItemCheckboxType>) => {
25
25
  const menuItem = useMenuItemCheckbox(userProps);
26
- const Slots = useSlots(userProps, (layer): boolean => menuItem.state[layer]);
26
+ const Slots = useSlots(userProps, (layer): boolean => menuItem.state[layer] || userProps[layer]);
27
27
 
28
28
  return menuItemFinalRender(menuItem, Slots);
29
29
  },
@@ -14,16 +14,18 @@ import { useMenuListContext } from '../context/menuListContext';
14
14
  const defaultAccessibilityActions = [{ name: 'Toggle' }];
15
15
 
16
16
  export const useMenuItemCheckbox = (props: MenuItemCheckboxProps): MenuItemCheckboxState => {
17
- const { name } = props;
17
+ const { disabled, name } = props;
18
18
  const context = useMenuListContext();
19
19
  const checked = context.checked?.[name];
20
20
  const onCheckedChange = context.onCheckedChange;
21
21
 
22
22
  const toggleChecked = React.useCallback(
23
23
  (e: InteractionEvent) => {
24
- onCheckedChange(e, name, !checked);
24
+ if (!disabled) {
25
+ onCheckedChange(e, name, !checked);
26
+ }
25
27
  },
26
- [checked, name, onCheckedChange],
28
+ [checked, disabled, name, onCheckedChange],
27
29
  );
28
30
 
29
31
  return useMenuCheckboxInteraction(props, toggleChecked);
@@ -74,12 +76,14 @@ export const useMenuCheckboxInteraction = (
74
76
  : defaultAccessibilityActions;
75
77
  const onAccessibilityActionProp = React.useCallback(
76
78
  (event: AccessibilityActionEvent) => {
77
- if (event.nativeEvent.actionName === 'Toggle') {
78
- toggleCallback(event);
79
+ if (!disabled) {
80
+ if (event.nativeEvent.actionName === 'Toggle') {
81
+ toggleCallback(event);
82
+ }
83
+ onAccessibilityAction && onAccessibilityAction(event);
79
84
  }
80
- onAccessibilityAction && onAccessibilityAction(event);
81
85
  },
82
- [toggleCallback, onAccessibilityAction],
86
+ [disabled, toggleCallback, onAccessibilityAction],
83
87
  );
84
88
 
85
89
  const state = {
@@ -97,7 +101,7 @@ export const useMenuCheckboxInteraction = (
97
101
  accessibilityRole: 'menuitem',
98
102
  accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState),
99
103
  enableFocusRing: true,
100
- focusable: !disabled,
104
+ focusable: true,
101
105
  onAccessibilityAction: onAccessibilityActionProp,
102
106
  ref: buttonRef,
103
107
  ...onKeyProps,
@@ -5,16 +5,18 @@ import { MenuItemCheckboxProps, MenuItemCheckboxState } from '../MenuItemCheckbo
5
5
  import { useMenuCheckboxInteraction } from '../MenuItemCheckbox/useMenuItemCheckbox';
6
6
 
7
7
  export const useMenuItemRadio = (props: MenuItemCheckboxProps): MenuItemCheckboxState => {
8
- const { name } = props;
8
+ const { disabled, name } = props;
9
9
  const context = useMenuListContext();
10
10
  const checked = context.checked?.[name];
11
11
  const selectRadio = context.selectRadio;
12
12
 
13
13
  const toggleChecked = React.useCallback(
14
14
  (e: InteractionEvent) => {
15
- selectRadio(e, name, !checked);
15
+ if (!disabled) {
16
+ selectRadio(e, name, !checked);
17
+ }
16
18
  },
17
- [checked, name, selectRadio],
19
+ [checked, disabled, name, selectRadio],
18
20
  );
19
21
 
20
22
  return useMenuCheckboxInteraction(props, toggleChecked);