@fluentui-react-native/menu 1.6.0 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +31 -1
- package/CHANGELOG.md +18 -2
- package/lib/MenuItem/useMenuItem.d.ts.map +1 -1
- package/lib/MenuItem/useMenuItem.js +3 -0
- package/lib/MenuItem/useMenuItem.js.map +1 -1
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +3 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib/MenuList/MenuList.d.ts.map +1 -1
- package/lib/MenuList/MenuList.js +3 -3
- package/lib/MenuList/MenuList.js.map +1 -1
- package/lib/MenuList/MenuList.types.d.ts +8 -1
- package/lib/MenuList/MenuList.types.d.ts.map +1 -1
- package/lib/MenuList/useMenuList.d.ts +3 -0
- package/lib/MenuList/useMenuList.d.ts.map +1 -1
- package/lib/MenuList/useMenuList.js +53 -0
- package/lib/MenuList/useMenuList.js.map +1 -1
- package/lib/MenuPopover/useMenuPopover.js +3 -2
- package/lib/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib/context/menuListContext.d.ts.map +1 -1
- package/lib/context/menuListContext.js +3 -0
- package/lib/context/menuListContext.js.map +1 -1
- package/lib-commonjs/MenuItem/useMenuItem.d.ts.map +1 -1
- package/lib-commonjs/MenuItem/useMenuItem.js +3 -0
- package/lib-commonjs/MenuItem/useMenuItem.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +3 -0
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuList.js +3 -3
- package/lib-commonjs/MenuList/MenuList.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.types.d.ts +8 -1
- package/lib-commonjs/MenuList/MenuList.types.d.ts.map +1 -1
- package/lib-commonjs/MenuList/useMenuList.d.ts +3 -0
- package/lib-commonjs/MenuList/useMenuList.d.ts.map +1 -1
- package/lib-commonjs/MenuList/useMenuList.js +55 -1
- package/lib-commonjs/MenuList/useMenuList.js.map +1 -1
- package/lib-commonjs/MenuPopover/useMenuPopover.js +3 -2
- package/lib-commonjs/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib-commonjs/context/menuListContext.d.ts.map +1 -1
- package/lib-commonjs/context/menuListContext.js +3 -0
- package/lib-commonjs/context/menuListContext.js.map +1 -1
- package/package.json +1 -1
- package/src/MenuItem/useMenuItem.ts +4 -0
- package/src/MenuItemCheckbox/useMenuItemCheckbox.ts +4 -0
- package/src/MenuList/MenuList.tsx +5 -3
- package/src/MenuList/MenuList.types.ts +9 -1
- package/src/MenuList/useMenuList.ts +67 -1
- package/src/MenuPopover/useMenuPopover.ts +1 -1
- package/src/context/menuListContext.ts +3 -0
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,37 @@
|
|
|
2
2
|
"name": "@fluentui-react-native/menu",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Fri, 21 Apr 2023 04:53:47 GMT",
|
|
6
|
+
"tag": "@fluentui-react-native/menu_v1.6.2",
|
|
7
|
+
"version": "1.6.2",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "winlarry@microsoft.com",
|
|
12
|
+
"package": "@fluentui-react-native/menu",
|
|
13
|
+
"commit": "f4d293b635560aded539334f6463ce837577cc76",
|
|
14
|
+
"comment": "Add Home and End key functionality in MenuList"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Fri, 21 Apr 2023 00:04:59 GMT",
|
|
21
|
+
"tag": "@fluentui-react-native/menu_v1.6.1",
|
|
22
|
+
"version": "1.6.1",
|
|
23
|
+
"comments": {
|
|
24
|
+
"patch": [
|
|
25
|
+
{
|
|
26
|
+
"author": "krsiler@microsoft.com",
|
|
27
|
+
"package": "@fluentui-react-native/menu",
|
|
28
|
+
"commit": "11930a798152c8616af7f196e2c92b39b579bd32",
|
|
29
|
+
"comment": "enable pointer capture to be overridden"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"date": "Wed, 19 Apr 2023 10:08:39 GMT",
|
|
6
36
|
"tag": "@fluentui-react-native/menu_v1.6.0",
|
|
7
37
|
"version": "1.6.0",
|
|
8
38
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
# Change Log - @fluentui-react-native/menu
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Fri, 21 Apr 2023 04:53:47 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 1.6.2
|
|
8
|
+
|
|
9
|
+
Fri, 21 Apr 2023 04:53:47 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- Add Home and End key functionality in MenuList (winlarry@microsoft.com)
|
|
14
|
+
|
|
15
|
+
## 1.6.1
|
|
16
|
+
|
|
17
|
+
Fri, 21 Apr 2023 00:04:59 GMT
|
|
18
|
+
|
|
19
|
+
### Patches
|
|
20
|
+
|
|
21
|
+
- enable pointer capture to be overridden (krsiler@microsoft.com)
|
|
22
|
+
|
|
7
23
|
## 1.6.0
|
|
8
24
|
|
|
9
|
-
Wed, 19 Apr 2023 10:08:
|
|
25
|
+
Wed, 19 Apr 2023 10:08:39 GMT
|
|
10
26
|
|
|
11
27
|
### Minor changes
|
|
12
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMpE,eAAO,MAAM,WAAW,UAAiB,CAAC;AAC1C,eAAO,MAAM,kBAAkB,UAA8C,CAAC;AAE9E,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,YA6ElD,CAAC;AAUF,eAAO,MAAM,mBAAmB,YAAa,OAAO,gBAAgB,MAAM,gBAAgB,CAAC,GAAG,CAAC,SAQ9F,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { isKeyPressEvent, usePressableState, useKeyDownProps, useViewCommandFocu
|
|
|
6
6
|
import { useMenuContext } from '../context/menuContext';
|
|
7
7
|
import { useMenuListContext } from '../context/menuListContext';
|
|
8
8
|
import { useMenuTriggerContext } from '../context/menuTriggerContext';
|
|
9
|
+
import { useMenuItemTracking } from '../MenuList/useMenuList';
|
|
9
10
|
export var triggerKeys = [' ', 'Enter'];
|
|
10
11
|
export var submenuTriggerKeys = __spreadArray(['ArrowLeft', 'ArrowRight'], triggerKeys, true);
|
|
11
12
|
export var useMenuItem = function (props) {
|
|
@@ -42,6 +43,8 @@ export var useMenuItem = function (props) {
|
|
|
42
43
|
// Explicitly override onKeyDown to override the native behavior of moving focus with arrow keys.
|
|
43
44
|
var onKeyDownProps = useKeyDownProps.apply(void 0, __spreadArray([onInvoke], keys, false));
|
|
44
45
|
useHoverFocusEffect(pressable.state.hovered, componentRef);
|
|
46
|
+
// Track the ref and disabled props on this menu item so the MenuList can handle Home and End keypresses.
|
|
47
|
+
useMenuItemTracking(componentRef, disabled);
|
|
45
48
|
return {
|
|
46
49
|
props: __assign(__assign(__assign({}, pressable.props), { accessible: accessible !== null && accessible !== void 0 ? accessible : true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || onInvoke, accessibilityState: getAccessibilityState(disabled, accessibilityState), disabled: disabled, enableFocusRing: Platform.select({
|
|
47
50
|
macos: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAGpI,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,0CAA0C,CAAC;AAGhG,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,0CAA0C,CAAC;AAGhG,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAQ5F,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,oBAgBlE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,oBAiGF,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { usePressableState, useKeyDownProps, useOnPressWithFocus, useViewCommand
|
|
|
6
6
|
import { useMenuContext } from '../context/menuContext';
|
|
7
7
|
import { useMenuListContext } from '../context/menuListContext';
|
|
8
8
|
import { submenuTriggerKeys, triggerKeys, useHoverFocusEffect } from '../MenuItem/useMenuItem';
|
|
9
|
+
import { useMenuItemTracking } from '../MenuList/useMenuList';
|
|
9
10
|
var defaultAccessibilityActions = [{ name: 'Toggle' }];
|
|
10
11
|
export var useMenuItemCheckbox = function (props) {
|
|
11
12
|
var _a;
|
|
@@ -70,6 +71,8 @@ export var useMenuCheckboxInteraction = function (props, toggleCallback) {
|
|
|
70
71
|
}
|
|
71
72
|
}, [disabled, toggleCallback, onAccessibilityAction]);
|
|
72
73
|
useHoverFocusEffect(pressable.state.hovered, componentRef);
|
|
74
|
+
// Track the ref and disabled props on this menu item so the MenuList can handle Home and End keypresses.
|
|
75
|
+
useMenuItemTracking(componentRef, disabled);
|
|
73
76
|
var state = __assign(__assign({}, pressable.state), { checked: isChecked, disabled: disabled, hasIcons: hasIcons, hasTooltips: hasTooltips });
|
|
74
77
|
return {
|
|
75
78
|
props: __assign(__assign(__assign({}, pressable.props), { accessible: accessible !== null && accessible !== void 0 ? accessible : true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: accessibilityLabel, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), disabled: disabled, enableFocusRing: Platform.select({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAGxI,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AA0BnF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,aAAa,aAAa,KAAG,OAE9F,CAAC;AACF,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AA0BnF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,aAAa,aAAa,KAAG,OAE9F,CAAC;AACF,eAAO,MAAM,QAAQ,gLA+EnB,CAAC"}
|
package/lib/MenuList/MenuList.js
CHANGED
|
@@ -59,12 +59,12 @@ export var MenuList = compose(__assign(__assign({ displayName: menuListName }, s
|
|
|
59
59
|
}
|
|
60
60
|
return child;
|
|
61
61
|
});
|
|
62
|
-
var content = Platform.OS === 'macos' ? (withSlots(Slots.root, { onMouseLeave: setFocusZoneFocus },
|
|
62
|
+
var content = Platform.OS === 'macos' ? (withSlots(Slots.root, { onMouseLeave: setFocusZoneFocus, onKeyDown: menuList.onListKeyDown },
|
|
63
63
|
withSlots(Slots.scrollView, { accessibilityRole: "menu", showsVerticalScrollIndicator: menuContext.hasMaxHeight, showsHorizontalScrollIndicator: menuContext.hasMaxWidth },
|
|
64
64
|
withSlots(Slots.focusZone, { componentRef: focusZoneRef, focusZoneDirection: 'vertical', defaultTabbableElement: focusZoneRef,
|
|
65
65
|
// @ts-ignore FocusZone takes ViewProps, but that isn't defined on it's type.
|
|
66
|
-
enableFocusRing: false }, childrenWithSet)))) : menuContext.hasMaxHeight ? (withSlots(Slots.root, { style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} },
|
|
67
|
-
withSlots(Slots.scrollView, null, childrenWithSet))) : (withSlots(Slots.root, { style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} }, childrenWithSet));
|
|
66
|
+
enableFocusRing: false }, childrenWithSet)))) : menuContext.hasMaxHeight ? (withSlots(Slots.root, { onKeyDown: menuList.onListKeyDown, style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} },
|
|
67
|
+
withSlots(Slots.scrollView, null, childrenWithSet))) : (withSlots(Slots.root, { onKeyDown: menuList.onListKeyDown, style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} }, childrenWithSet));
|
|
68
68
|
return withSlots(MenuListProvider, { value: menuListContextValue }, content);
|
|
69
69
|
};
|
|
70
70
|
} }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import type { ScrollViewProps } from 'react-native';
|
|
2
|
+
import type { ScrollViewProps, View } from 'react-native';
|
|
3
3
|
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
4
4
|
import type { FocusZoneProps } from '@fluentui-react-native/focus-zone';
|
|
5
5
|
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
@@ -65,6 +65,9 @@ export interface MenuListState extends Omit<MenuListProps, 'checked' | 'onChecke
|
|
|
65
65
|
selectRadio?: (e: InteractionEvent, name: string) => void;
|
|
66
66
|
addRadioItem: (name: string) => void;
|
|
67
67
|
removeRadioItem: (name: string) => void;
|
|
68
|
+
trackMenuItem: (item: TrackedMenuItem) => void;
|
|
69
|
+
untrackMenuItem: (item: TrackedMenuItem) => void;
|
|
70
|
+
onListKeyDown: (e: InteractionEvent) => void;
|
|
68
71
|
hasMaxHeight?: boolean;
|
|
69
72
|
hasMaxWidth?: boolean;
|
|
70
73
|
}
|
|
@@ -80,4 +83,8 @@ export interface MenuListType {
|
|
|
80
83
|
tokens: MenuListTokens;
|
|
81
84
|
slotProps: MenuListSlotProps;
|
|
82
85
|
}
|
|
86
|
+
export interface TrackedMenuItem {
|
|
87
|
+
ref: React.RefObject<View>;
|
|
88
|
+
disabled: boolean;
|
|
89
|
+
}
|
|
83
90
|
//# sourceMappingURL=MenuList.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { View } from 'react-native';
|
|
1
3
|
import type { MenuListProps, MenuListState } from './MenuList.types';
|
|
2
4
|
export declare const useMenuList: (_props: MenuListProps) => MenuListState;
|
|
5
|
+
export declare const useMenuItemTracking: (ref: React.RefObject<View>, disabled: boolean) => void;
|
|
3
6
|
//# sourceMappingURL=useMenuList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAmBtF,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aA4JnD,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAS,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,OAAO,SAgBhF,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { Platform } from 'react-native';
|
|
3
4
|
import { useMenuContext } from '../context/menuContext';
|
|
5
|
+
import { useMenuListContext } from '../context/menuListContext';
|
|
4
6
|
// Track the radio items so we know what to clear selection from when selectRadio is called
|
|
5
7
|
// Purposefully left out of the hook because
|
|
6
8
|
// 1. RadioItems just keeps track of information - changing this array doesn't need to force rerender
|
|
@@ -12,6 +14,8 @@ var addRadioItem = function (name) {
|
|
|
12
14
|
var removeRadioItem = function (name) {
|
|
13
15
|
radioItems.filter(function (item) { return item !== name; });
|
|
14
16
|
};
|
|
17
|
+
var platformsWithoutFocusOnDisabled = ['ios', 'macos'];
|
|
18
|
+
var handledKeys = ['Home', 'End'];
|
|
15
19
|
export var useMenuList = function (_props) {
|
|
16
20
|
var context = useMenuContext();
|
|
17
21
|
// MenuList v2 needs to be able to be standalone, but this is not in scope for v1
|
|
@@ -88,6 +92,38 @@ export var useMenuList = function (_props) {
|
|
|
88
92
|
setOpen(e, false /* isOpen */, false /* bubble */);
|
|
89
93
|
(_a = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
90
94
|
}, [isSubmenu, setOpen, triggerRef]);
|
|
95
|
+
// Handle 'Home' and 'End' keypresses here. Native menus allow 'Home' and 'End' keypresses to jump to the
|
|
96
|
+
// start and end of each menu list. We need to keep track of all MenuItems in our list, and we need access to
|
|
97
|
+
// (1) the item's ref to focus on and (2) whether the item is disabled or not as different platforms allow
|
|
98
|
+
// and don't allow focus for disabled items.
|
|
99
|
+
// Instead of calling useState to instantiate an array, we call useMemo because we don't want to re-render the
|
|
100
|
+
// MenuList on adding / removing items.
|
|
101
|
+
var trackedMenuItems = React.useMemo(function () { return []; }, []);
|
|
102
|
+
var trackMenuItem = React.useCallback(function (item) { return trackedMenuItems.push(item); }, [trackedMenuItems]);
|
|
103
|
+
var untrackMenuItem = React.useCallback(function (item) {
|
|
104
|
+
return trackedMenuItems.splice(trackedMenuItems.findIndex(function (x) { return x.ref === item.ref; }), 1);
|
|
105
|
+
}, [trackedMenuItems]);
|
|
106
|
+
var onListKeyDown = function (e) {
|
|
107
|
+
var _a;
|
|
108
|
+
var key = e.nativeEvent.key;
|
|
109
|
+
if (handledKeys.includes(key)) {
|
|
110
|
+
// For iOS and macOS, 'Home' and 'End' must set focus on the first and last enabled item.
|
|
111
|
+
// For other platforms, we can just jump to the first and last keys.
|
|
112
|
+
var increment = void 0, idx = void 0;
|
|
113
|
+
if (key === 'Home') {
|
|
114
|
+
increment = 1;
|
|
115
|
+
idx = 0;
|
|
116
|
+
}
|
|
117
|
+
else if (key === 'End') {
|
|
118
|
+
increment = -1;
|
|
119
|
+
idx = trackedMenuItems.length - 1;
|
|
120
|
+
}
|
|
121
|
+
while (platformsWithoutFocusOnDisabled.includes(Platform.OS) && trackedMenuItems[idx].disabled) {
|
|
122
|
+
idx += increment;
|
|
123
|
+
}
|
|
124
|
+
(_a = trackedMenuItems[idx].ref.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
125
|
+
}
|
|
126
|
+
};
|
|
91
127
|
React.useEffect(function () {
|
|
92
128
|
return function cleanup() {
|
|
93
129
|
clearTimeout(context.triggerHoverOutTimer);
|
|
@@ -102,8 +138,25 @@ export var useMenuList = function (_props) {
|
|
|
102
138
|
selectRadio: selectRadio,
|
|
103
139
|
addRadioItem: addRadioItem,
|
|
104
140
|
removeRadioItem: removeRadioItem,
|
|
141
|
+
trackMenuItem: trackMenuItem,
|
|
142
|
+
untrackMenuItem: untrackMenuItem,
|
|
143
|
+
onListKeyDown: onListKeyDown,
|
|
105
144
|
hasMaxHeight: context.hasMaxHeight,
|
|
106
145
|
hasMaxWidth: context.hasMaxWidth,
|
|
107
146
|
};
|
|
108
147
|
};
|
|
148
|
+
// Hook called in individual MenuItems to keep track of their refs - this is for "Home" and "End" functionality.
|
|
149
|
+
export var useMenuItemTracking = function (ref, disabled) {
|
|
150
|
+
var _a = useMenuListContext(), trackMenuItem = _a.trackMenuItem, untrackMenuItem = _a.untrackMenuItem;
|
|
151
|
+
var item = React.useMemo(function () { return ({
|
|
152
|
+
ref: ref,
|
|
153
|
+
disabled: disabled,
|
|
154
|
+
}); }, [ref, disabled]);
|
|
155
|
+
// We only want to call this once - when the item initially renders.
|
|
156
|
+
React.useEffect(function () {
|
|
157
|
+
trackMenuItem(item);
|
|
158
|
+
return function () { return untrackMenuItem(item); };
|
|
159
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
160
|
+
}, []);
|
|
161
|
+
};
|
|
109
162
|
//# sourceMappingURL=useMenuList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { useMenuContext } from '../context/menuContext';
|
|
|
4
4
|
var controlledDismissBehaviors = ['preventDismissOnKeyDown', 'preventDismissOnClickOutside'];
|
|
5
5
|
var stopPropagationKeys = ['ArrowUp', 'ArrowDown', 'Tab', 'Home', 'End', 'Escape'];
|
|
6
6
|
export var useMenuPopover = function (props) {
|
|
7
|
+
var _a;
|
|
7
8
|
var context = useMenuContext();
|
|
8
9
|
var setOpen = context.setOpen, triggerRef = context.triggerRef, isControlled = context.isControlled, isSubmenu = context.isSubmenu, openOnHover = context.openOnHover, parentPopoverHoverOutTimer = context.parentPopoverHoverOutTimer, popoverHoverOutTimer = context.popoverHoverOutTimer, setPopoverHoverOutTimer = context.setPopoverHoverOutTimer, shouldFocusOnContainer = context.shouldFocusOnContainer, triggerHoverOutTimer = context.triggerHoverOutTimer;
|
|
9
10
|
var onKeyDownProp = props.onKeyDown, onKeyUpProp = props.onKeyUp;
|
|
@@ -17,7 +18,7 @@ export var useMenuPopover = function (props) {
|
|
|
17
18
|
// Initial focus behavior differs per platform, Windows platforms move focus
|
|
18
19
|
// automatically onto first element of Callout
|
|
19
20
|
var setInitialFocus = Platform.OS === 'win32' || Platform.OS === 'windows';
|
|
20
|
-
var doNotTakePointerCapture = openOnHover;
|
|
21
|
+
var doNotTakePointerCapture = (_a = props.doNotTakePointerCapture) !== null && _a !== void 0 ? _a : openOnHover;
|
|
21
22
|
var accessibilityRole = 'menu';
|
|
22
23
|
var onMouseEnter = React.useCallback(function () {
|
|
23
24
|
clearTimeout(triggerHoverOutTimer);
|
|
@@ -49,7 +50,7 @@ export var useMenuPopover = function (props) {
|
|
|
49
50
|
e.stopPropagation();
|
|
50
51
|
}
|
|
51
52
|
}, [onKeyUpProp]);
|
|
52
|
-
var
|
|
53
|
+
var _b = React.useState(shouldFocusOnContainer), canFocusOnPopover = _b[0], setCanFocusOnPopover = _b[1];
|
|
53
54
|
var onBlur = React.useCallback(function () {
|
|
54
55
|
setCanFocusOnPopover(false);
|
|
55
56
|
}, [setCanFocusOnPopover]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,IAAM,0BAA0B,GAAG,CAAC,yBAAyB,EAAE,8BAA8B,CAAuB,CAAC;AACrH,IAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;AAE9F,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,KAAuB
|
|
1
|
+
{"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menuListContext.d.ts","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG;IAChE,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"menuListContext.d.ts","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG;IAChE,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,qCAa1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,sCAA2B,CAAC;AACzD,eAAO,MAAM,kBAAkB,4BAA0C,CAAC"}
|
|
@@ -9,6 +9,9 @@ export var MenuListContext = React.createContext({
|
|
|
9
9
|
onArrowClose: function () { return false; },
|
|
10
10
|
addRadioItem: function () { return false; },
|
|
11
11
|
removeRadioItem: function () { return false; },
|
|
12
|
+
trackMenuItem: function () { return false; },
|
|
13
|
+
untrackMenuItem: function () { return false; },
|
|
14
|
+
onListKeyDown: function () { return false; },
|
|
12
15
|
});
|
|
13
16
|
export var MenuListProvider = MenuListContext.Provider;
|
|
14
17
|
export var useMenuListContext = function () { return React.useContext(MenuListContext); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menuListContext.js","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,CAAC,IAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB;IACvE,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;
|
|
1
|
+
{"version":3,"file":"menuListContext.js","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,CAAC,IAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB;IACvE,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC1B,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzD,MAAM,CAAC,IAAM,kBAAkB,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAjC,CAAiC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMpE,eAAO,MAAM,WAAW,UAAiB,CAAC;AAC1C,eAAO,MAAM,kBAAkB,UAA8C,CAAC;AAE9E,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,YA6ElD,CAAC;AAUF,eAAO,MAAM,mBAAmB,YAAa,OAAO,gBAAgB,MAAM,gBAAgB,CAAC,GAAG,CAAC,SAQ9F,CAAC"}
|
|
@@ -9,6 +9,7 @@ var interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
|
|
|
9
9
|
var menuContext_1 = require("../context/menuContext");
|
|
10
10
|
var menuListContext_1 = require("../context/menuListContext");
|
|
11
11
|
var menuTriggerContext_1 = require("../context/menuTriggerContext");
|
|
12
|
+
var useMenuList_1 = require("../MenuList/useMenuList");
|
|
12
13
|
exports.triggerKeys = [' ', 'Enter'];
|
|
13
14
|
exports.submenuTriggerKeys = tslib_1.__spreadArray(['ArrowLeft', 'ArrowRight'], exports.triggerKeys, true);
|
|
14
15
|
var useMenuItem = function (props) {
|
|
@@ -45,6 +46,8 @@ var useMenuItem = function (props) {
|
|
|
45
46
|
// Explicitly override onKeyDown to override the native behavior of moving focus with arrow keys.
|
|
46
47
|
var onKeyDownProps = interactive_hooks_1.useKeyDownProps.apply(void 0, tslib_1.__spreadArray([onInvoke], keys, false));
|
|
47
48
|
(0, exports.useHoverFocusEffect)(pressable.state.hovered, componentRef);
|
|
49
|
+
// Track the ref and disabled props on this menu item so the MenuList can handle Home and End keypresses.
|
|
50
|
+
(0, useMenuList_1.useMenuItemTracking)(componentRef, disabled);
|
|
48
51
|
return {
|
|
49
52
|
props: tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, pressable.props), { accessible: accessible !== null && accessible !== void 0 ? accessible : true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || onInvoke, accessibilityState: getAccessibilityState(disabled, accessibilityState), disabled: disabled, enableFocusRing: react_native_1.Platform.select({
|
|
50
53
|
macos: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":";;;;AAAA,mDAA+B;AAE/B,6CAAqD;AAErD,8DAA2D;AAE3D,8EAAoI;AAGpI,sDAAwD;AACxD,8DAAgE;AAChE,oEAAsE;
|
|
1
|
+
{"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,0CAA0C,CAAC;AAGhG,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,0CAA0C,CAAC;AAGhG,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAQ5F,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,oBAgBlE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,oBAiGF,CAAC"}
|
|
@@ -9,6 +9,7 @@ var interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
|
|
|
9
9
|
var menuContext_1 = require("../context/menuContext");
|
|
10
10
|
var menuListContext_1 = require("../context/menuListContext");
|
|
11
11
|
var useMenuItem_1 = require("../MenuItem/useMenuItem");
|
|
12
|
+
var useMenuList_1 = require("../MenuList/useMenuList");
|
|
12
13
|
var defaultAccessibilityActions = [{ name: 'Toggle' }];
|
|
13
14
|
var useMenuItemCheckbox = function (props) {
|
|
14
15
|
var _a;
|
|
@@ -74,6 +75,8 @@ var useMenuCheckboxInteraction = function (props, toggleCallback) {
|
|
|
74
75
|
}
|
|
75
76
|
}, [disabled, toggleCallback, onAccessibilityAction]);
|
|
76
77
|
(0, useMenuItem_1.useHoverFocusEffect)(pressable.state.hovered, componentRef);
|
|
78
|
+
// Track the ref and disabled props on this menu item so the MenuList can handle Home and End keypresses.
|
|
79
|
+
(0, useMenuList_1.useMenuItemTracking)(componentRef, disabled);
|
|
77
80
|
var state = tslib_1.__assign(tslib_1.__assign({}, pressable.state), { checked: isChecked, disabled: disabled, hasIcons: hasIcons, hasTooltips: hasTooltips });
|
|
78
81
|
return {
|
|
79
82
|
props: tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, pressable.props), { accessible: accessible !== null && accessible !== void 0 ? accessible : true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: accessibilityLabel, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), disabled: disabled, enableFocusRing: react_native_1.Platform.select({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":";;;;AAAA,mDAA+B;AAE/B,6CAAqD;AAErD,8DAA2D;AAE3D,8EAAwI;AAGxI,sDAAwD;AACxD,8DAAgE;AAChE,uDAA+F;
|
|
1
|
+
{"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AA0BnF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,aAAa,aAAa,KAAG,OAE9F,CAAC;AACF,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AA0BnF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,aAAa,aAAa,KAAG,OAE9F,CAAC;AACF,eAAO,MAAM,QAAQ,gLA+EnB,CAAC"}
|
|
@@ -63,12 +63,12 @@ exports.MenuList = (0, framework_1.compose)(tslib_1.__assign(tslib_1.__assign({
|
|
|
63
63
|
}
|
|
64
64
|
return child;
|
|
65
65
|
});
|
|
66
|
-
var content = react_native_1.Platform.OS === 'macos' ? ((0, framework_1.withSlots)(Slots.root, { onMouseLeave: setFocusZoneFocus },
|
|
66
|
+
var content = react_native_1.Platform.OS === 'macos' ? ((0, framework_1.withSlots)(Slots.root, { onMouseLeave: setFocusZoneFocus, onKeyDown: menuList.onListKeyDown },
|
|
67
67
|
(0, framework_1.withSlots)(Slots.scrollView, { accessibilityRole: "menu", showsVerticalScrollIndicator: menuContext.hasMaxHeight, showsHorizontalScrollIndicator: menuContext.hasMaxWidth },
|
|
68
68
|
(0, framework_1.withSlots)(Slots.focusZone, { componentRef: focusZoneRef, focusZoneDirection: 'vertical', defaultTabbableElement: focusZoneRef,
|
|
69
69
|
// @ts-ignore FocusZone takes ViewProps, but that isn't defined on it's type.
|
|
70
|
-
enableFocusRing: false }, childrenWithSet)))) : menuContext.hasMaxHeight ? ((0, framework_1.withSlots)(Slots.root, { style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} },
|
|
71
|
-
(0, framework_1.withSlots)(Slots.scrollView, null, childrenWithSet))) : ((0, framework_1.withSlots)(Slots.root, { style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} }, childrenWithSet));
|
|
70
|
+
enableFocusRing: false }, childrenWithSet)))) : menuContext.hasMaxHeight ? ((0, framework_1.withSlots)(Slots.root, { onKeyDown: menuList.onListKeyDown, style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} },
|
|
71
|
+
(0, framework_1.withSlots)(Slots.scrollView, null, childrenWithSet))) : ((0, framework_1.withSlots)(Slots.root, { onKeyDown: menuList.onListKeyDown, style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} }, childrenWithSet));
|
|
72
72
|
return (0, framework_1.withSlots)(menuListContext_1.MenuListProvider, { value: menuListContextValue }, content);
|
|
73
73
|
};
|
|
74
74
|
} }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,wDAA0B;AAC1B,6CAA0D;AAG1D,gEAA8D;AAE9D,8DAAmG;AAEnG,uDAAqD;AAErD,mDAAgD;AAChD,6CAA4C;AAC5C,qEAAoE;AACpE,sCAA4C;AAC5C,8DAA8D;AAE9D,IAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,UAAC,KAAwD;IACjF,IAAA,GAAG,GAAc,KAAK,IAAnB,EAAK,IAAI,kBAAK,KAAK,EAAxB,OAAgB,CAAF,CAAW;IAC/B,OAAO,UAAC,KAAwD,EAAE,QAAyB;QACzF,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,QAAQ,EAAE;YAC9B,6DAA6D;YAC7D,yCAAyC;YACzC,QAAQ,GAAG,eAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAuB,EAAE,KAAa;gBAC7E,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;oBAC5C,OAAO,eAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAA,sBAAU,EAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;iBAC1F;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,2BAAC,mBAAI,uBAAK,IAAA,sBAAU,EAAC,IAAI,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAQ,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAE7B,IAAM,cAAc,GAAG,UAAC,KAAa,EAAE,KAAoB,EAAE,SAAwB;IAC1F,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,cAAc,CAAC;AACtE,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AACW,QAAA,QAAQ,GAAG,IAAA,mBAAO,sCAC7B,WAAW,EAAE,6BAAY,IACtB,kCAAe,KAClB,KAAK,qBACH,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,yBAAU,IACnB,CAAC,uBAAQ,CAAC,EAAE,KAAK,OAAO,IAAI,EAAE,SAAS,EAAE,sBAAS,EAAE,CAAC,GAE1D,SAAS,EAAE,UAAC,SAAwB,EAAE,QAAgC;QACpE,IAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC;QACxC,IAAM,WAAW,GAAG,IAAA,wBAAc,GAAE,CAAC;QACrC,IAAM,oBAAoB,GAAG,IAAA,iDAAuB,EAAC,QAAQ,CAAC,CAAC;QAC/D,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAC,KAAK,IAAK,OAAA,IAAA,sBAAc,EAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAA1C,CAA0C,CAAC,CAAC;QAE9F,IAAM,YAAY,GAAG,eAAK,CAAC,MAAM,EAAQ,CAAC;QAC1C,IAAM,iBAAiB,GAAG;;YACxB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,0CAAE,KAAK,EAAE,CAAC;QACjC,CAAC,CAAC;QAEF,eAAK,CAAC,SAAS,CAAC;YACd,iBAAiB,EAAE,CAAC;QACtB,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,UAAC,MAAqB,EAAE,QAAyB;YACtD,IAAM,SAAS,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CACvD,UAAC,KAAK,IAAK,OAAA,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,aAAa,EAAhF,CAAgF,CAC5F,CAAC,MAAM,CAAC;YACT,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,IAAM,eAAe,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK;;gBACjE,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBAC/B,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,aAAa,EAAE;wBACrD,YAAY,EAAE,CAAC;qBAChB;oBAED,OAAO,eAAK,CAAC,YAAY,CACvB,KAA+E,EAC/E;wBACE,0BAA0B,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,0BAA0B,mCAAI,YAAY;wBAClF,oBAAoB,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,oBAAoB,mCAAI,SAAS,EAAE,OAAO;qBACtE,CACT,CAAC;iBACH;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,IAAM,OAAO,GACX,uBAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,2BAAC,KAAK,CAAC,IAAI,IAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,CAAC,aAAa;gBAC5E,2BAAC,KAAK,CAAC,UAAU,IACf,iBAAiB,EAAC,MAAM,EACxB,4BAA4B,EAAE,WAAW,CAAC,YAAY,EACtD,8BAA8B,EAAE,WAAW,CAAC,WAAW;oBAEvD,2BAAC,KAAK,CAAC,SAAS,IACd,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,UAAU,EAC9B,sBAAsB,EAAE,YAAY;wBACpC,6EAA6E;wBAC7E,eAAe,EAAE,KAAK,IAErB,eAAe,CACA,CACD,CACR,CACd,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAC7B,2BAAC,KAAK,CAAC,IAAI,IAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;gBAClH,2BAAC,KAAK,CAAC,UAAU,QAAE,eAAe,CAAoB,CAC3C,CACd,CAAC,CAAC,CAAC,CACF,2BAAC,KAAK,CAAC,IAAI,IAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IACjH,eAAe,CACL,CACd,CAAC;YAEJ,OAAO,2BAAC,kCAAgB,IAAC,KAAK,EAAE,oBAAoB,IAAG,OAAO,CAAoB,CAAC;QACrF,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import type { ScrollViewProps } from 'react-native';
|
|
2
|
+
import type { ScrollViewProps, View } from 'react-native';
|
|
3
3
|
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
4
4
|
import type { FocusZoneProps } from '@fluentui-react-native/focus-zone';
|
|
5
5
|
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
@@ -65,6 +65,9 @@ export interface MenuListState extends Omit<MenuListProps, 'checked' | 'onChecke
|
|
|
65
65
|
selectRadio?: (e: InteractionEvent, name: string) => void;
|
|
66
66
|
addRadioItem: (name: string) => void;
|
|
67
67
|
removeRadioItem: (name: string) => void;
|
|
68
|
+
trackMenuItem: (item: TrackedMenuItem) => void;
|
|
69
|
+
untrackMenuItem: (item: TrackedMenuItem) => void;
|
|
70
|
+
onListKeyDown: (e: InteractionEvent) => void;
|
|
68
71
|
hasMaxHeight?: boolean;
|
|
69
72
|
hasMaxWidth?: boolean;
|
|
70
73
|
}
|
|
@@ -80,4 +83,8 @@ export interface MenuListType {
|
|
|
80
83
|
tokens: MenuListTokens;
|
|
81
84
|
slotProps: MenuListSlotProps;
|
|
82
85
|
}
|
|
86
|
+
export interface TrackedMenuItem {
|
|
87
|
+
ref: React.RefObject<View>;
|
|
88
|
+
disabled: boolean;
|
|
89
|
+
}
|
|
83
90
|
//# sourceMappingURL=MenuList.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { View } from 'react-native';
|
|
1
3
|
import type { MenuListProps, MenuListState } from './MenuList.types';
|
|
2
4
|
export declare const useMenuList: (_props: MenuListProps) => MenuListState;
|
|
5
|
+
export declare const useMenuItemTracking: (ref: React.RefObject<View>, disabled: boolean) => void;
|
|
3
6
|
//# sourceMappingURL=useMenuList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAmBtF,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aA4JnD,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAS,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,OAAO,SAgBhF,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useMenuList = void 0;
|
|
3
|
+
exports.useMenuItemTracking = exports.useMenuList = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
var react_native_1 = require("react-native");
|
|
6
7
|
var menuContext_1 = require("../context/menuContext");
|
|
8
|
+
var menuListContext_1 = require("../context/menuListContext");
|
|
7
9
|
// Track the radio items so we know what to clear selection from when selectRadio is called
|
|
8
10
|
// Purposefully left out of the hook because
|
|
9
11
|
// 1. RadioItems just keeps track of information - changing this array doesn't need to force rerender
|
|
@@ -15,6 +17,8 @@ var addRadioItem = function (name) {
|
|
|
15
17
|
var removeRadioItem = function (name) {
|
|
16
18
|
radioItems.filter(function (item) { return item !== name; });
|
|
17
19
|
};
|
|
20
|
+
var platformsWithoutFocusOnDisabled = ['ios', 'macos'];
|
|
21
|
+
var handledKeys = ['Home', 'End'];
|
|
18
22
|
var useMenuList = function (_props) {
|
|
19
23
|
var context = (0, menuContext_1.useMenuContext)();
|
|
20
24
|
// MenuList v2 needs to be able to be standalone, but this is not in scope for v1
|
|
@@ -91,6 +95,38 @@ var useMenuList = function (_props) {
|
|
|
91
95
|
setOpen(e, false /* isOpen */, false /* bubble */);
|
|
92
96
|
(_a = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
93
97
|
}, [isSubmenu, setOpen, triggerRef]);
|
|
98
|
+
// Handle 'Home' and 'End' keypresses here. Native menus allow 'Home' and 'End' keypresses to jump to the
|
|
99
|
+
// start and end of each menu list. We need to keep track of all MenuItems in our list, and we need access to
|
|
100
|
+
// (1) the item's ref to focus on and (2) whether the item is disabled or not as different platforms allow
|
|
101
|
+
// and don't allow focus for disabled items.
|
|
102
|
+
// Instead of calling useState to instantiate an array, we call useMemo because we don't want to re-render the
|
|
103
|
+
// MenuList on adding / removing items.
|
|
104
|
+
var trackedMenuItems = react_1.default.useMemo(function () { return []; }, []);
|
|
105
|
+
var trackMenuItem = react_1.default.useCallback(function (item) { return trackedMenuItems.push(item); }, [trackedMenuItems]);
|
|
106
|
+
var untrackMenuItem = react_1.default.useCallback(function (item) {
|
|
107
|
+
return trackedMenuItems.splice(trackedMenuItems.findIndex(function (x) { return x.ref === item.ref; }), 1);
|
|
108
|
+
}, [trackedMenuItems]);
|
|
109
|
+
var onListKeyDown = function (e) {
|
|
110
|
+
var _a;
|
|
111
|
+
var key = e.nativeEvent.key;
|
|
112
|
+
if (handledKeys.includes(key)) {
|
|
113
|
+
// For iOS and macOS, 'Home' and 'End' must set focus on the first and last enabled item.
|
|
114
|
+
// For other platforms, we can just jump to the first and last keys.
|
|
115
|
+
var increment = void 0, idx = void 0;
|
|
116
|
+
if (key === 'Home') {
|
|
117
|
+
increment = 1;
|
|
118
|
+
idx = 0;
|
|
119
|
+
}
|
|
120
|
+
else if (key === 'End') {
|
|
121
|
+
increment = -1;
|
|
122
|
+
idx = trackedMenuItems.length - 1;
|
|
123
|
+
}
|
|
124
|
+
while (platformsWithoutFocusOnDisabled.includes(react_native_1.Platform.OS) && trackedMenuItems[idx].disabled) {
|
|
125
|
+
idx += increment;
|
|
126
|
+
}
|
|
127
|
+
(_a = trackedMenuItems[idx].ref.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
128
|
+
}
|
|
129
|
+
};
|
|
94
130
|
react_1.default.useEffect(function () {
|
|
95
131
|
return function cleanup() {
|
|
96
132
|
clearTimeout(context.triggerHoverOutTimer);
|
|
@@ -105,9 +141,27 @@ var useMenuList = function (_props) {
|
|
|
105
141
|
selectRadio: selectRadio,
|
|
106
142
|
addRadioItem: addRadioItem,
|
|
107
143
|
removeRadioItem: removeRadioItem,
|
|
144
|
+
trackMenuItem: trackMenuItem,
|
|
145
|
+
untrackMenuItem: untrackMenuItem,
|
|
146
|
+
onListKeyDown: onListKeyDown,
|
|
108
147
|
hasMaxHeight: context.hasMaxHeight,
|
|
109
148
|
hasMaxWidth: context.hasMaxWidth,
|
|
110
149
|
};
|
|
111
150
|
};
|
|
112
151
|
exports.useMenuList = useMenuList;
|
|
152
|
+
// Hook called in individual MenuItems to keep track of their refs - this is for "Home" and "End" functionality.
|
|
153
|
+
var useMenuItemTracking = function (ref, disabled) {
|
|
154
|
+
var _a = (0, menuListContext_1.useMenuListContext)(), trackMenuItem = _a.trackMenuItem, untrackMenuItem = _a.untrackMenuItem;
|
|
155
|
+
var item = react_1.default.useMemo(function () { return ({
|
|
156
|
+
ref: ref,
|
|
157
|
+
disabled: disabled,
|
|
158
|
+
}); }, [ref, disabled]);
|
|
159
|
+
// We only want to call this once - when the item initially renders.
|
|
160
|
+
react_1.default.useEffect(function () {
|
|
161
|
+
trackMenuItem(item);
|
|
162
|
+
return function () { return untrackMenuItem(item); };
|
|
163
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
164
|
+
}, []);
|
|
165
|
+
};
|
|
166
|
+
exports.useMenuItemTracking = useMenuItemTracking;
|
|
113
167
|
//# sourceMappingURL=useMenuList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":";;;;AAAA,wDAA0B;
|
|
1
|
+
{"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ var menuContext_1 = require("../context/menuContext");
|
|
|
8
8
|
var controlledDismissBehaviors = ['preventDismissOnKeyDown', 'preventDismissOnClickOutside'];
|
|
9
9
|
var stopPropagationKeys = ['ArrowUp', 'ArrowDown', 'Tab', 'Home', 'End', 'Escape'];
|
|
10
10
|
var useMenuPopover = function (props) {
|
|
11
|
+
var _a;
|
|
11
12
|
var context = (0, menuContext_1.useMenuContext)();
|
|
12
13
|
var setOpen = context.setOpen, triggerRef = context.triggerRef, isControlled = context.isControlled, isSubmenu = context.isSubmenu, openOnHover = context.openOnHover, parentPopoverHoverOutTimer = context.parentPopoverHoverOutTimer, popoverHoverOutTimer = context.popoverHoverOutTimer, setPopoverHoverOutTimer = context.setPopoverHoverOutTimer, shouldFocusOnContainer = context.shouldFocusOnContainer, triggerHoverOutTimer = context.triggerHoverOutTimer;
|
|
13
14
|
var onKeyDownProp = props.onKeyDown, onKeyUpProp = props.onKeyUp;
|
|
@@ -21,7 +22,7 @@ var useMenuPopover = function (props) {
|
|
|
21
22
|
// Initial focus behavior differs per platform, Windows platforms move focus
|
|
22
23
|
// automatically onto first element of Callout
|
|
23
24
|
var setInitialFocus = react_native_1.Platform.OS === 'win32' || react_native_1.Platform.OS === 'windows';
|
|
24
|
-
var doNotTakePointerCapture = openOnHover;
|
|
25
|
+
var doNotTakePointerCapture = (_a = props.doNotTakePointerCapture) !== null && _a !== void 0 ? _a : openOnHover;
|
|
25
26
|
var accessibilityRole = 'menu';
|
|
26
27
|
var onMouseEnter = react_1.default.useCallback(function () {
|
|
27
28
|
clearTimeout(triggerHoverOutTimer);
|
|
@@ -53,7 +54,7 @@ var useMenuPopover = function (props) {
|
|
|
53
54
|
e.stopPropagation();
|
|
54
55
|
}
|
|
55
56
|
}, [onKeyUpProp]);
|
|
56
|
-
var
|
|
57
|
+
var _b = react_1.default.useState(shouldFocusOnContainer), canFocusOnPopover = _b[0], setCanFocusOnPopover = _b[1];
|
|
57
58
|
var onBlur = react_1.default.useCallback(function () {
|
|
58
59
|
setCanFocusOnPopover(false);
|
|
59
60
|
}, [setCanFocusOnPopover]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAC1B,6CAAqD;AAKrD,sDAAwD;AAExD,IAAM,0BAA0B,GAAG,CAAC,yBAAyB,EAAE,8BAA8B,CAAuB,CAAC;AACrH,IAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;AAEvF,IAAM,cAAc,GAAG,UAAC,KAAuB
|
|
1
|
+
{"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menuListContext.d.ts","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG;IAChE,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"menuListContext.d.ts","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG;IAChE,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,qCAa1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,sCAA2B,CAAC;AACzD,eAAO,MAAM,kBAAkB,4BAA0C,CAAC"}
|
|
@@ -13,6 +13,9 @@ exports.MenuListContext = React.createContext({
|
|
|
13
13
|
onArrowClose: function () { return false; },
|
|
14
14
|
addRadioItem: function () { return false; },
|
|
15
15
|
removeRadioItem: function () { return false; },
|
|
16
|
+
trackMenuItem: function () { return false; },
|
|
17
|
+
untrackMenuItem: function () { return false; },
|
|
18
|
+
onListKeyDown: function () { return false; },
|
|
16
19
|
});
|
|
17
20
|
exports.MenuListProvider = exports.MenuListContext.Provider;
|
|
18
21
|
var useMenuListContext = function () { return React.useContext(exports.MenuListContext); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menuListContext.js","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":";;;;AAAA,mDAA+B;AAalB,QAAA,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB;IACvE,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;
|
|
1
|
+
{"version":3,"file":"menuListContext.js","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":";;;;AAAA,mDAA+B;AAalB,QAAA,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB;IACvE,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC1B,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;CAC3B,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,uBAAe,CAAC,QAAQ,CAAC;AAClD,IAAM,kBAAkB,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,uBAAe,CAAC,EAAjC,CAAiC,CAAC;AAA7D,QAAA,kBAAkB,sBAA2C"}
|
package/package.json
CHANGED
|
@@ -10,6 +10,7 @@ import type { MenuItemProps, MenuItemInfo } from './MenuItem.types';
|
|
|
10
10
|
import { useMenuContext } from '../context/menuContext';
|
|
11
11
|
import { useMenuListContext } from '../context/menuListContext';
|
|
12
12
|
import { useMenuTriggerContext } from '../context/menuTriggerContext';
|
|
13
|
+
import { useMenuItemTracking } from '../MenuList/useMenuList';
|
|
13
14
|
|
|
14
15
|
export const triggerKeys = [' ', 'Enter'];
|
|
15
16
|
export const submenuTriggerKeys = ['ArrowLeft', 'ArrowRight', ...triggerKeys];
|
|
@@ -61,6 +62,9 @@ export const useMenuItem = (props: MenuItemProps): MenuItemInfo => {
|
|
|
61
62
|
|
|
62
63
|
useHoverFocusEffect(pressable.state.hovered, componentRef);
|
|
63
64
|
|
|
65
|
+
// Track the ref and disabled props on this menu item so the MenuList can handle Home and End keypresses.
|
|
66
|
+
useMenuItemTracking(componentRef, disabled);
|
|
67
|
+
|
|
64
68
|
return {
|
|
65
69
|
props: {
|
|
66
70
|
...pressable.props,
|
|
@@ -10,6 +10,7 @@ import type { MenuItemCheckboxProps, MenuItemCheckboxInfo } from './MenuItemChec
|
|
|
10
10
|
import { useMenuContext } from '../context/menuContext';
|
|
11
11
|
import { useMenuListContext } from '../context/menuListContext';
|
|
12
12
|
import { submenuTriggerKeys, triggerKeys, useHoverFocusEffect } from '../MenuItem/useMenuItem';
|
|
13
|
+
import { useMenuItemTracking } from '../MenuList/useMenuList';
|
|
13
14
|
|
|
14
15
|
const defaultAccessibilityActions = [{ name: 'Toggle' }];
|
|
15
16
|
|
|
@@ -113,6 +114,9 @@ export const useMenuCheckboxInteraction = (
|
|
|
113
114
|
|
|
114
115
|
useHoverFocusEffect(pressable.state.hovered, componentRef);
|
|
115
116
|
|
|
117
|
+
// Track the ref and disabled props on this menu item so the MenuList can handle Home and End keypresses.
|
|
118
|
+
useMenuItemTracking(componentRef, disabled);
|
|
119
|
+
|
|
116
120
|
const state = {
|
|
117
121
|
...pressable.state,
|
|
118
122
|
checked: isChecked,
|
|
@@ -86,7 +86,7 @@ export const MenuList = compose<MenuListType>({
|
|
|
86
86
|
|
|
87
87
|
const content =
|
|
88
88
|
Platform.OS === 'macos' ? (
|
|
89
|
-
<Slots.root onMouseLeave={setFocusZoneFocus}>
|
|
89
|
+
<Slots.root onMouseLeave={setFocusZoneFocus} onKeyDown={menuList.onListKeyDown}>
|
|
90
90
|
<Slots.scrollView
|
|
91
91
|
accessibilityRole="menu"
|
|
92
92
|
showsVerticalScrollIndicator={menuContext.hasMaxHeight}
|
|
@@ -104,11 +104,13 @@ export const MenuList = compose<MenuListType>({
|
|
|
104
104
|
</Slots.scrollView>
|
|
105
105
|
</Slots.root>
|
|
106
106
|
) : menuContext.hasMaxHeight ? (
|
|
107
|
-
<Slots.root style={menuContext.minWidth ? { minWidth: menuContext.minWidth } : {}}>
|
|
107
|
+
<Slots.root onKeyDown={menuList.onListKeyDown} style={menuContext.minWidth ? { minWidth: menuContext.minWidth } : {}}>
|
|
108
108
|
<Slots.scrollView>{childrenWithSet}</Slots.scrollView>
|
|
109
109
|
</Slots.root>
|
|
110
110
|
) : (
|
|
111
|
-
<Slots.root style={menuContext.minWidth ? { minWidth: menuContext.minWidth } : {}}>
|
|
111
|
+
<Slots.root onKeyDown={menuList.onListKeyDown} style={menuContext.minWidth ? { minWidth: menuContext.minWidth } : {}}>
|
|
112
|
+
{childrenWithSet}
|
|
113
|
+
</Slots.root>
|
|
112
114
|
);
|
|
113
115
|
|
|
114
116
|
return <MenuListProvider value={menuListContextValue}>{content}</MenuListProvider>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import type { ScrollViewProps } from 'react-native';
|
|
2
|
+
import type { ScrollViewProps, View } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
5
5
|
import type { FocusZoneProps } from '@fluentui-react-native/focus-zone';
|
|
@@ -77,6 +77,9 @@ export interface MenuListState extends Omit<MenuListProps, 'checked' | 'onChecke
|
|
|
77
77
|
selectRadio?: (e: InteractionEvent, name: string) => void;
|
|
78
78
|
addRadioItem: (name: string) => void;
|
|
79
79
|
removeRadioItem: (name: string) => void;
|
|
80
|
+
trackMenuItem: (item: TrackedMenuItem) => void;
|
|
81
|
+
untrackMenuItem: (item: TrackedMenuItem) => void;
|
|
82
|
+
onListKeyDown: (e: InteractionEvent) => void;
|
|
80
83
|
hasMaxHeight?: boolean;
|
|
81
84
|
hasMaxWidth?: boolean;
|
|
82
85
|
}
|
|
@@ -92,3 +95,8 @@ export interface MenuListType {
|
|
|
92
95
|
tokens: MenuListTokens;
|
|
93
96
|
slotProps: MenuListSlotProps;
|
|
94
97
|
}
|
|
98
|
+
|
|
99
|
+
export interface TrackedMenuItem {
|
|
100
|
+
ref: React.RefObject<View>;
|
|
101
|
+
disabled: boolean;
|
|
102
|
+
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
3
|
+
import type { View } from 'react-native';
|
|
2
4
|
|
|
3
5
|
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
4
6
|
|
|
5
|
-
import type { MenuListProps, MenuListState } from './MenuList.types';
|
|
7
|
+
import type { MenuListProps, MenuListState, TrackedMenuItem } from './MenuList.types';
|
|
6
8
|
import { useMenuContext } from '../context/menuContext';
|
|
9
|
+
import { useMenuListContext } from '../context/menuListContext';
|
|
7
10
|
|
|
8
11
|
// Track the radio items so we know what to clear selection from when selectRadio is called
|
|
9
12
|
// Purposefully left out of the hook because
|
|
@@ -17,6 +20,9 @@ const removeRadioItem = (name: string) => {
|
|
|
17
20
|
radioItems.filter((item) => item !== name);
|
|
18
21
|
};
|
|
19
22
|
|
|
23
|
+
const platformsWithoutFocusOnDisabled = ['ios', 'macos'];
|
|
24
|
+
const handledKeys = ['Home', 'End'];
|
|
25
|
+
|
|
20
26
|
export const useMenuList = (_props: MenuListProps): MenuListState => {
|
|
21
27
|
const context = useMenuContext();
|
|
22
28
|
|
|
@@ -112,6 +118,44 @@ export const useMenuList = (_props: MenuListProps): MenuListState => {
|
|
|
112
118
|
[isSubmenu, setOpen, triggerRef],
|
|
113
119
|
);
|
|
114
120
|
|
|
121
|
+
// Handle 'Home' and 'End' keypresses here. Native menus allow 'Home' and 'End' keypresses to jump to the
|
|
122
|
+
// start and end of each menu list. We need to keep track of all MenuItems in our list, and we need access to
|
|
123
|
+
// (1) the item's ref to focus on and (2) whether the item is disabled or not as different platforms allow
|
|
124
|
+
// and don't allow focus for disabled items.
|
|
125
|
+
|
|
126
|
+
// Instead of calling useState to instantiate an array, we call useMemo because we don't want to re-render the
|
|
127
|
+
// MenuList on adding / removing items.
|
|
128
|
+
const trackedMenuItems = React.useMemo<TrackedMenuItem[]>(() => [], []);
|
|
129
|
+
const trackMenuItem = React.useCallback((item: TrackedMenuItem) => trackedMenuItems.push(item), [trackedMenuItems]);
|
|
130
|
+
const untrackMenuItem = React.useCallback(
|
|
131
|
+
(item: TrackedMenuItem) =>
|
|
132
|
+
trackedMenuItems.splice(
|
|
133
|
+
trackedMenuItems.findIndex((x) => x.ref === item.ref),
|
|
134
|
+
1,
|
|
135
|
+
),
|
|
136
|
+
[trackedMenuItems],
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
const onListKeyDown = (e: InteractionEvent) => {
|
|
140
|
+
const key = e.nativeEvent.key;
|
|
141
|
+
if (handledKeys.includes(key)) {
|
|
142
|
+
// For iOS and macOS, 'Home' and 'End' must set focus on the first and last enabled item.
|
|
143
|
+
// For other platforms, we can just jump to the first and last keys.
|
|
144
|
+
let increment: number, idx: number;
|
|
145
|
+
if (key === 'Home') {
|
|
146
|
+
increment = 1;
|
|
147
|
+
idx = 0;
|
|
148
|
+
} else if (key === 'End') {
|
|
149
|
+
increment = -1;
|
|
150
|
+
idx = trackedMenuItems.length - 1;
|
|
151
|
+
}
|
|
152
|
+
while (platformsWithoutFocusOnDisabled.includes(Platform.OS) && trackedMenuItems[idx].disabled) {
|
|
153
|
+
idx += increment;
|
|
154
|
+
}
|
|
155
|
+
trackedMenuItems[idx].ref.current?.focus();
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
115
159
|
React.useEffect(() => {
|
|
116
160
|
return function cleanup() {
|
|
117
161
|
clearTimeout(context.triggerHoverOutTimer);
|
|
@@ -129,7 +173,29 @@ export const useMenuList = (_props: MenuListProps): MenuListState => {
|
|
|
129
173
|
selectRadio,
|
|
130
174
|
addRadioItem,
|
|
131
175
|
removeRadioItem,
|
|
176
|
+
trackMenuItem,
|
|
177
|
+
untrackMenuItem,
|
|
178
|
+
onListKeyDown,
|
|
132
179
|
hasMaxHeight: context.hasMaxHeight,
|
|
133
180
|
hasMaxWidth: context.hasMaxWidth,
|
|
134
181
|
};
|
|
135
182
|
};
|
|
183
|
+
|
|
184
|
+
// Hook called in individual MenuItems to keep track of their refs - this is for "Home" and "End" functionality.
|
|
185
|
+
export const useMenuItemTracking = (ref: React.RefObject<View>, disabled: boolean) => {
|
|
186
|
+
const { trackMenuItem, untrackMenuItem } = useMenuListContext();
|
|
187
|
+
const item = React.useMemo(
|
|
188
|
+
() => ({
|
|
189
|
+
ref,
|
|
190
|
+
disabled,
|
|
191
|
+
}),
|
|
192
|
+
[ref, disabled],
|
|
193
|
+
);
|
|
194
|
+
|
|
195
|
+
// We only want to call this once - when the item initially renders.
|
|
196
|
+
React.useEffect(() => {
|
|
197
|
+
trackMenuItem(item);
|
|
198
|
+
return () => untrackMenuItem(item);
|
|
199
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
200
|
+
}, []);
|
|
201
|
+
};
|
|
@@ -36,7 +36,7 @@ export const useMenuPopover = (props: MenuPopoverProps): MenuPopoverState => {
|
|
|
36
36
|
// Initial focus behavior differs per platform, Windows platforms move focus
|
|
37
37
|
// automatically onto first element of Callout
|
|
38
38
|
const setInitialFocus = Platform.OS === ('win32' as any) || Platform.OS === 'windows';
|
|
39
|
-
const doNotTakePointerCapture = openOnHover;
|
|
39
|
+
const doNotTakePointerCapture = props.doNotTakePointerCapture ?? openOnHover;
|
|
40
40
|
const accessibilityRole = 'menu';
|
|
41
41
|
|
|
42
42
|
const onMouseEnter = React.useCallback(() => {
|
|
@@ -21,6 +21,9 @@ export const MenuListContext = React.createContext<MenuListContextValue>({
|
|
|
21
21
|
onArrowClose: () => false,
|
|
22
22
|
addRadioItem: () => false,
|
|
23
23
|
removeRadioItem: () => false,
|
|
24
|
+
trackMenuItem: () => false,
|
|
25
|
+
untrackMenuItem: () => false,
|
|
26
|
+
onListKeyDown: () => false,
|
|
24
27
|
});
|
|
25
28
|
|
|
26
29
|
export const MenuListProvider = MenuListContext.Provider;
|