@fluentui-react-native/menu 1.14.23 → 1.14.25
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 +42 -1
- package/CHANGELOG.md +10 -2
- package/eslint.config.js +3 -0
- package/lib/Menu/Menu.js +5 -5
- package/lib/Menu/Menu.js.map +1 -1
- package/lib/Menu/Menu.types.js +1 -1
- package/lib/Menu/Menu.types.js.map +1 -1
- package/lib/Menu/renderMenu.android.js +5 -5
- package/lib/Menu/renderMenu.android.js.map +1 -1
- package/lib/Menu/renderMenu.js +3 -3
- package/lib/Menu/renderMenu.js.map +1 -1
- package/lib/Menu/useMenu.android.js +86 -61
- package/lib/Menu/useMenu.android.js.map +1 -1
- package/lib/Menu/useMenu.js +39 -29
- package/lib/Menu/useMenu.js.map +1 -1
- package/lib/Menu/useMenuContextValue.js +4 -5
- package/lib/Menu/useMenuContextValue.js.map +1 -1
- package/lib/MenuCallout/MenuCallout.android.js +7 -8
- package/lib/MenuCallout/MenuCallout.android.js.map +1 -1
- package/lib/MenuCallout/MenuCallout.js +4 -5
- package/lib/MenuCallout/MenuCallout.js.map +1 -1
- package/lib/MenuCallout/MenuCallout.types.js +1 -1
- package/lib/MenuCallout/MenuCallout.types.js.map +1 -1
- package/lib/MenuDivider/MenuDivider.js +11 -7
- package/lib/MenuDivider/MenuDivider.js.map +1 -1
- package/lib/MenuDivider/MenuDivider.styling.js +12 -5
- package/lib/MenuDivider/MenuDivider.styling.js.map +1 -1
- package/lib/MenuDivider/MenuDivider.types.js +2 -2
- package/lib/MenuDivider/MenuDivider.types.js.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.android.js +2 -2
- package/lib/MenuDivider/MenuDividerTokens.android.js.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.js +2 -2
- package/lib/MenuDivider/MenuDividerTokens.js.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.macos.js +2 -2
- package/lib/MenuDivider/MenuDividerTokens.macos.js.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.win32.js +2 -2
- package/lib/MenuDivider/MenuDividerTokens.win32.js.map +1 -1
- package/lib/MenuGroup/MenuGroup.js +25 -30
- package/lib/MenuGroup/MenuGroup.js.map +1 -1
- package/lib/MenuGroup/MenuGroup.types.js +1 -1
- package/lib/MenuGroup/MenuGroup.types.js.map +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeader.js +12 -8
- package/lib/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeader.styling.js +6 -4
- package/lib/MenuGroupHeader/MenuGroupHeader.styling.js.map +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeader.types.js +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.js +2 -2
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.js.map +1 -1
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.js +2 -2
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.js.map +1 -1
- package/lib/MenuItem/MenuItem.js +31 -21
- package/lib/MenuItem/MenuItem.js.map +1 -1
- package/lib/MenuItem/MenuItem.styling.js +27 -18
- package/lib/MenuItem/MenuItem.styling.js.map +1 -1
- package/lib/MenuItem/MenuItem.types.js +1 -1
- package/lib/MenuItem/MenuItem.types.js.map +1 -1
- package/lib/MenuItem/MenuItemTokens.android.js +2 -2
- package/lib/MenuItem/MenuItemTokens.android.js.map +1 -1
- package/lib/MenuItem/MenuItemTokens.js +2 -2
- package/lib/MenuItem/MenuItemTokens.js.map +1 -1
- package/lib/MenuItem/MenuItemTokens.macos.js +2 -2
- package/lib/MenuItem/MenuItemTokens.macos.js.map +1 -1
- package/lib/MenuItem/MenuItemTokens.win32.js +2 -2
- package/lib/MenuItem/MenuItemTokens.win32.js.map +1 -1
- package/lib/MenuItem/useMenuItem.js +57 -41
- package/lib/MenuItem/useMenuItem.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js +34 -16
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js +54 -27
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.android.js +2 -2
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.android.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js +2 -2
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +2 -2
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +2 -2
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -1
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +60 -40
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.js +23 -16
- package/lib/MenuItemRadio/MenuItemRadio.js.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.styling.android.js +29 -18
- package/lib/MenuItemRadio/MenuItemRadio.styling.android.js.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.styling.js +33 -18
- package/lib/MenuItemRadio/MenuItemRadio.styling.js.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.types.js +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadioTokens.android.js +2 -2
- package/lib/MenuItemRadio/MenuItemRadioTokens.android.js.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadioTokens.js +2 -2
- package/lib/MenuItemRadio/MenuItemRadioTokens.js.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadioTokens.macos.js +2 -2
- package/lib/MenuItemRadio/MenuItemRadioTokens.macos.js.map +1 -1
- package/lib/MenuItemRadio/useMenuItemRadio.js +11 -11
- package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib/MenuList/MenuList.js +46 -39
- package/lib/MenuList/MenuList.js.map +1 -1
- package/lib/MenuList/MenuList.styling.js +10 -6
- package/lib/MenuList/MenuList.styling.js.map +1 -1
- package/lib/MenuList/MenuList.types.js +1 -1
- package/lib/MenuList/MenuList.types.js.map +1 -1
- package/lib/MenuList/MenuListTokens.android.js +2 -2
- package/lib/MenuList/MenuListTokens.android.js.map +1 -1
- package/lib/MenuList/MenuListTokens.js +2 -2
- package/lib/MenuList/MenuListTokens.js.map +1 -1
- package/lib/MenuList/MenuListTokens.macos.js +2 -2
- package/lib/MenuList/MenuListTokens.macos.js.map +1 -1
- package/lib/MenuList/MenuListTokens.win32.js +2 -2
- package/lib/MenuList/MenuListTokens.win32.js.map +1 -1
- package/lib/MenuList/useMenuList.js +63 -69
- package/lib/MenuList/useMenuList.js.map +1 -1
- package/lib/MenuList/useMenuListContextValue.js +2 -3
- package/lib/MenuList/useMenuListContextValue.js.map +1 -1
- package/lib/MenuPopover/MenuPopover.d.ts +1 -1
- package/lib/MenuPopover/MenuPopover.js +29 -27
- package/lib/MenuPopover/MenuPopover.js.map +1 -1
- package/lib/MenuPopover/MenuPopover.types.js +1 -1
- package/lib/MenuPopover/MenuPopover.types.js.map +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.android.js +2 -2
- package/lib/MenuPopover/MenuPopoverTokens.android.js.map +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.d.ts +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.js +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.js.map +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.macos.d.ts +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.macos.js +2 -2
- package/lib/MenuPopover/MenuPopoverTokens.macos.js.map +1 -1
- package/lib/MenuPopover/useMenuPopover.js +33 -35
- package/lib/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.js +6 -4
- package/lib/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.types.js +1 -1
- package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib/MenuTrigger/useMenuTrigger.js +29 -30
- package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib/MenuTrigger/useMergeRefs.js +6 -10
- package/lib/MenuTrigger/useMergeRefs.js.map +1 -1
- package/lib/__tests__/Menu.test.js +21 -21
- package/lib/__tests__/Menu.test.js.map +1 -1
- package/lib/consts.js +1 -1
- package/lib/consts.js.map +1 -1
- package/lib/context/menuContext.js +5 -5
- package/lib/context/menuContext.js.map +1 -1
- package/lib/context/menuListContext.js +9 -9
- package/lib/context/menuListContext.js.map +1 -1
- package/lib/context/menuTriggerContext.js +3 -3
- package/lib/context/menuTriggerContext.js.map +1 -1
- package/lib-commonjs/Menu/Menu.js +12 -12
- package/lib-commonjs/Menu/Menu.js.map +1 -1
- package/lib-commonjs/Menu/renderMenu.android.js +9 -9
- package/lib-commonjs/Menu/renderMenu.android.js.map +1 -1
- package/lib-commonjs/Menu/renderMenu.js +6 -6
- package/lib-commonjs/Menu/renderMenu.js.map +1 -1
- package/lib-commonjs/Menu/useMenu.android.js +91 -65
- package/lib-commonjs/Menu/useMenu.android.js.map +1 -1
- package/lib-commonjs/Menu/useMenu.js +44 -33
- package/lib-commonjs/Menu/useMenu.js.map +1 -1
- package/lib-commonjs/Menu/useMenuContextValue.js +6 -6
- package/lib-commonjs/Menu/useMenuContextValue.js.map +1 -1
- package/lib-commonjs/MenuCallout/MenuCallout.android.js +14 -14
- package/lib-commonjs/MenuCallout/MenuCallout.android.js.map +1 -1
- package/lib-commonjs/MenuCallout/MenuCallout.js +10 -10
- package/lib-commonjs/MenuCallout/MenuCallout.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.js +15 -11
- package/lib-commonjs/MenuDivider/MenuDivider.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.styling.js +15 -8
- package/lib-commonjs/MenuDivider/MenuDivider.styling.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.android.js +3 -3
- package/lib-commonjs/MenuDivider/MenuDividerTokens.android.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.js +3 -3
- package/lib-commonjs/MenuDivider/MenuDividerTokens.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.js +3 -3
- package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.js +3 -3
- package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.js.map +1 -1
- package/lib-commonjs/MenuGroup/MenuGroup.js +30 -34
- package/lib-commonjs/MenuGroup/MenuGroup.js.map +1 -1
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.js +16 -12
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.js +9 -7
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.js.map +1 -1
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.js +3 -3
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.js.map +1 -1
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.js +3 -3
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItem.js +37 -27
- package/lib-commonjs/MenuItem/MenuItem.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItem.styling.js +30 -21
- package/lib-commonjs/MenuItem/MenuItem.styling.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.android.js +3 -3
- package/lib-commonjs/MenuItem/MenuItemTokens.android.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.js +3 -3
- package/lib-commonjs/MenuItem/MenuItemTokens.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.macos.js +3 -3
- package/lib-commonjs/MenuItem/MenuItemTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.win32.js +3 -3
- package/lib-commonjs/MenuItem/MenuItemTokens.win32.js.map +1 -1
- package/lib-commonjs/MenuItem/useMenuItem.js +65 -48
- package/lib-commonjs/MenuItem/useMenuItem.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js +43 -25
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.js +57 -30
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.android.js +3 -3
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.android.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js +3 -3
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +3 -3
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +3 -3
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +69 -48
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.js +32 -25
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.android.js +32 -21
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.android.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.js +36 -21
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.android.js +3 -3
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.android.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.js +3 -3
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.macos.js +3 -3
- package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js +16 -16
- package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.js +56 -48
- package/lib-commonjs/MenuList/MenuList.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.styling.js +13 -9
- package/lib-commonjs/MenuList/MenuList.styling.js.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.android.js +3 -3
- package/lib-commonjs/MenuList/MenuListTokens.android.js.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.js +3 -3
- package/lib-commonjs/MenuList/MenuListTokens.js.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.macos.js +3 -3
- package/lib-commonjs/MenuList/MenuListTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.win32.js +3 -3
- package/lib-commonjs/MenuList/MenuListTokens.win32.js.map +1 -1
- package/lib-commonjs/MenuList/useMenuList.js +68 -73
- package/lib-commonjs/MenuList/useMenuList.js.map +1 -1
- package/lib-commonjs/MenuList/useMenuListContextValue.js +2 -3
- package/lib-commonjs/MenuList/useMenuListContextValue.js.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopover.d.ts +1 -1
- package/lib-commonjs/MenuPopover/MenuPopover.js +38 -35
- package/lib-commonjs/MenuPopover/MenuPopover.js.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.android.js +6 -6
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.android.js.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.d.ts +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.js +3 -3
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.js.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.d.ts +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.js +5 -5
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuPopover/useMenuPopover.js +37 -39
- package/lib-commonjs/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.js +11 -8
- package/lib-commonjs/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js +35 -35
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib-commonjs/MenuTrigger/useMergeRefs.js +8 -11
- package/lib-commonjs/MenuTrigger/useMergeRefs.js.map +1 -1
- package/lib-commonjs/__tests__/Menu.test.js +35 -35
- package/lib-commonjs/__tests__/Menu.test.js.map +1 -1
- package/lib-commonjs/consts.js +1 -1
- package/lib-commonjs/consts.js.map +1 -1
- package/lib-commonjs/context/menuContext.js +5 -5
- package/lib-commonjs/context/menuContext.js.map +1 -1
- package/lib-commonjs/context/menuListContext.js +9 -9
- package/lib-commonjs/context/menuListContext.js.map +1 -1
- package/lib-commonjs/context/menuTriggerContext.js +3 -3
- package/lib-commonjs/context/menuTriggerContext.js.map +1 -1
- package/package.json +26 -14
- package/.eslintrc.js +0 -3
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,48 @@
|
|
|
2
2
|
"name": "@fluentui-react-native/menu",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Fri, 11 Jul 2025 19:50:50 GMT",
|
|
6
|
+
"version": "1.14.25",
|
|
7
|
+
"tag": "@fluentui-react-native/menu_v1.14.25",
|
|
8
|
+
"comments": {
|
|
9
|
+
"none": [
|
|
10
|
+
{
|
|
11
|
+
"author": "jasonmo@microsoft.com",
|
|
12
|
+
"package": "@fluentui-react-native/menu",
|
|
13
|
+
"commit": "54087dca787180bbf34630470cd0d06e88366b30",
|
|
14
|
+
"comment": "update eslint to 9.x and use new flat config format with security rules"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "sanajmi@microsoft.com",
|
|
18
|
+
"package": "@fluentui-react-native/menu",
|
|
19
|
+
"commit": "405ca368dc3f2963bfc252a1952b1e14ff503499",
|
|
20
|
+
"comment": "fix: run `beachball sync` to sync package versions with NPM"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"author": "4123478+tido64@users.noreply.github.com",
|
|
24
|
+
"package": "@fluentui-react-native/menu",
|
|
25
|
+
"commit": "79bb06f6bbfd0a36f9d2ef371f4857be9660f027",
|
|
26
|
+
"comment": "Fixed `align-deps` warnings"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"author": "ruaraki@microsoft.com",
|
|
30
|
+
"package": "@fluentui-react-native/menu",
|
|
31
|
+
"commit": "a245202877ef7f2be9ab5f0e1356b2270957e693",
|
|
32
|
+
"comment": "Run bump-versions"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"patch": [
|
|
36
|
+
{
|
|
37
|
+
"author": "jasonmo@microsoft.com",
|
|
38
|
+
"package": "@fluentui-react-native/menu",
|
|
39
|
+
"commit": "479b93cea460a26df70c55b5d3335927ed374713",
|
|
40
|
+
"comment": "update builds to use node16 settings and modern export maps"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"date": "Thu, 10 Jul 2025 19:20:10 GMT",
|
|
6
47
|
"version": "1.14.23",
|
|
7
48
|
"tag": "@fluentui-react-native/menu_v1.14.23",
|
|
8
49
|
"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
|
|
3
|
+
<!-- This log was last generated on Fri, 11 Jul 2025 19:50:50 GMT and should not be manually modified. -->
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 1.14.25
|
|
8
|
+
|
|
9
|
+
Fri, 11 Jul 2025 19:50:50 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- update builds to use node16 settings and modern export maps (jasonmo@microsoft.com)
|
|
14
|
+
|
|
7
15
|
## 1.14.23
|
|
8
16
|
|
|
9
|
-
Thu,
|
|
17
|
+
Thu, 10 Jul 2025 19:20:10 GMT
|
|
10
18
|
|
|
11
19
|
### Patches
|
|
12
20
|
|
package/eslint.config.js
ADDED
package/lib/Menu/Menu.js
CHANGED
|
@@ -4,11 +4,11 @@ import { menuName } from './Menu.types';
|
|
|
4
4
|
import { renderFinalMenu } from './renderMenu';
|
|
5
5
|
import { useMenu } from './useMenu';
|
|
6
6
|
import { useMenuContextValue } from './useMenuContextValue';
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return
|
|
11
|
-
|
|
7
|
+
export const Menu = stagedComponent((props) => {
|
|
8
|
+
const state = useMenu(props);
|
|
9
|
+
const contextValue = useMenuContextValue(state);
|
|
10
|
+
return (_rest, children) => {
|
|
11
|
+
const childrenArray = React.Children.toArray(children);
|
|
12
12
|
if (__DEV__) {
|
|
13
13
|
if (childrenArray.length !== 2) {
|
|
14
14
|
// eslint-disable-next-line no-console
|
package/lib/Menu/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,KAAgB,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAEhD,OAAO,CAAC,KAAgB,EAAE,QAAyB,EAAE,EAAE;QACrD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAyB,CAAC;QAE/E,IAAI,OAAO,EAAE;YACX,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;aAChD;SACF;QACD,OAAO,eAAe,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE5B,eAAe,IAAI,CAAC"}
|
package/lib/Menu/Menu.types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.types.js","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"Menu.types.js","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AA8D/B,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,6DAAM,CAAA;IACN,mEAAS,CAAA;IACT,2DAAK,CAAA;AACP,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View } from 'react-native';
|
|
3
3
|
import { MenuProvider } from '../context';
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export const renderFinalMenu = (childrenArray, contextValue, state) => {
|
|
5
|
+
const menuTrigger = childrenArray[0];
|
|
6
|
+
const menuPopover = childrenArray[1];
|
|
7
7
|
return (React.createElement(MenuProvider, { value: contextValue },
|
|
8
|
-
React.createElement(View, { onLayout:
|
|
9
|
-
|
|
8
|
+
React.createElement(View, { onLayout: (event) => {
|
|
9
|
+
const { width } = event.nativeEvent.layout;
|
|
10
10
|
state.setAnchorWidth(width);
|
|
11
11
|
} }, menuTrigger),
|
|
12
12
|
React.createElement(View, { ref: state._container, collapsable: false, testID: state.testID }, state.open && menuPopover)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderMenu.android.js","sourceRoot":"","sources":["../../src/Menu/renderMenu.android.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"renderMenu.android.js","sourceRoot":"","sources":["../../src/Menu/renderMenu.android.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAmC,EAAE,YAA8B,EAAE,KAAgB,EAAE,EAAE;IACvH,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CACL,oBAAC,YAAY,IAAC,KAAK,EAAE,YAAY;QAC/B,oBAAC,IAAI,IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC3C,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,IAEA,WAAW,CACP;QACP,oBAAC,IAAI,IAAC,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAClE,KAAK,CAAC,IAAI,IAAI,WAAW,CACrB,CACM,CAChB,CAAC;AACJ,CAAC,CAAC"}
|
package/lib/Menu/renderMenu.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { MenuProvider } from '../context';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export const renderFinalMenu = (childrenArray, contextValue, state) => {
|
|
4
|
+
const menuTrigger = childrenArray[0];
|
|
5
|
+
const menuPopover = childrenArray[1];
|
|
6
6
|
return (React.createElement(MenuProvider, { value: contextValue },
|
|
7
7
|
menuTrigger,
|
|
8
8
|
state.open && state.shouldFocusOnContainer !== undefined && menuPopover));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderMenu.js","sourceRoot":"","sources":["../../src/Menu/renderMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"renderMenu.js","sourceRoot":"","sources":["../../src/Menu/renderMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAmC,EAAE,YAA8B,EAAE,KAAgB,EAAE,EAAE;IACvH,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CACL,oBAAC,YAAY,IAAC,KAAK,EAAE,YAAY;QAC9B,WAAW;QAGX,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,sBAAsB,KAAK,SAAS,IAAI,WAAW,CAC3D,CAChB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
1
|
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
3
2
|
import { Animated, Dimensions, Easing, I18nManager, StatusBar } from 'react-native';
|
|
4
3
|
import { AndroidMenuStates } from './Menu.types';
|
|
@@ -8,53 +7,53 @@ import { useMenuContext } from '../context/menuContext';
|
|
|
8
7
|
// a menu when we close it. Adding in a delay to prevent
|
|
9
8
|
// this behavior.
|
|
10
9
|
// This are use when show() function is called to show the Menu
|
|
11
|
-
|
|
10
|
+
const delayOpen = 150;
|
|
12
11
|
/**
|
|
13
12
|
* Values related to Screen Width and Animation Easing
|
|
14
13
|
*/
|
|
15
14
|
// Animated easing value for Menu transitions(close and open)
|
|
16
|
-
|
|
15
|
+
const EASING = Easing.bezier(0.4, 0, 0.2, 1);
|
|
17
16
|
// Screen indent is the fixed value according to Android guidelines which depicts the minimum distance from screen edge Menu should have
|
|
18
|
-
|
|
19
|
-
export
|
|
17
|
+
const SCREEN_INDENT = 16;
|
|
18
|
+
export const useMenu = (props) => {
|
|
20
19
|
/**
|
|
21
20
|
* State , Ref and Context Values for Menu Container and Anchor
|
|
22
21
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
const triggerRef = React.useRef();
|
|
23
|
+
const context = useMenuContext();
|
|
24
|
+
const isSubmenu = context.triggerRef !== null;
|
|
25
|
+
const isOpenControlled = typeof props.open !== 'undefined';
|
|
26
|
+
const _container = useRef(null);
|
|
27
|
+
const [menuState, setMenuState] = React.useState(AndroidMenuStates.Hidden);
|
|
29
28
|
/**
|
|
30
29
|
* Call for useMenuCheckedState for identifying if any MenuItemCheckbox is checked or not
|
|
31
30
|
*/
|
|
32
|
-
|
|
31
|
+
const [checked, onCheckedChange] = useMenuCheckedState(props);
|
|
33
32
|
/**
|
|
34
33
|
* State Variables related to Height,Width and Position of the Menu Popover
|
|
35
34
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
const [maxMenuHeight] = useState(250);
|
|
36
|
+
const [anchorWidth, setAnchorWidth] = React.useState(0);
|
|
37
|
+
const [left, setLeft] = React.useState(0);
|
|
38
|
+
const [menuHeight, setMenuHeight] = React.useState(0);
|
|
39
|
+
const [menuWidth, setMenuWidth] = React.useState(0);
|
|
40
|
+
const [top, setTop] = React.useState(0);
|
|
42
41
|
/**
|
|
43
42
|
* Animation value for the Menu popover show,hide and opacity values
|
|
44
43
|
*/
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const [menuSizeAnimation, setMenuSizeAnimation] = React.useState(new Animated.ValueXY({ x: 0, y: 0 }));
|
|
45
|
+
const [opacityAnimation, setOpacityAnimation] = React.useState(new Animated.Value(0));
|
|
47
46
|
/**
|
|
48
47
|
* RTL for the MenuItem needs to taken care as well.
|
|
49
48
|
*/
|
|
50
|
-
|
|
49
|
+
const { isRTL } = I18nManager;
|
|
51
50
|
/**
|
|
52
51
|
* Calcualations related to Menu Popver position and dimensions
|
|
53
52
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
const dimensions = Dimensions.get('screen');
|
|
54
|
+
const { width: windowWidth } = dimensions;
|
|
55
|
+
const windowHeight = dimensions.height - (StatusBar.currentHeight || 0);
|
|
56
|
+
const menuSize = {
|
|
58
57
|
width: menuSizeAnimation.x,
|
|
59
58
|
height: menuSizeAnimation.y,
|
|
60
59
|
};
|
|
@@ -65,9 +64,8 @@ export var useMenu = function (props) {
|
|
|
65
64
|
* show function handles the opening of the Menu , it calcuates the position of the Anchor in the screen.
|
|
66
65
|
* It also sets the Anchor width and change the state of the Popover
|
|
67
66
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
(_a = _container.current) === null || _a === void 0 ? void 0 : _a.measureInWindow(function (left, top, buttonWidth, buttonHeight) {
|
|
67
|
+
const show = React.useCallback(() => {
|
|
68
|
+
_container.current?.measureInWindow((left, top, buttonWidth, buttonHeight) => {
|
|
71
69
|
setAnchorWidth(buttonWidth);
|
|
72
70
|
setLeft(left);
|
|
73
71
|
setMenuState(AndroidMenuStates.Shown);
|
|
@@ -77,13 +75,13 @@ export var useMenu = function (props) {
|
|
|
77
75
|
/**
|
|
78
76
|
* hide function handles the hiding of the Menu when user clicks on the scrim outside Menu or MenuItems such as (MenuItemRadio, MenuItem)
|
|
79
77
|
*/
|
|
80
|
-
|
|
78
|
+
const hide = React.useCallback(() => {
|
|
81
79
|
Animated.timing(opacityAnimation, {
|
|
82
80
|
toValue: 0,
|
|
83
81
|
duration: 250,
|
|
84
82
|
easing: EASING,
|
|
85
83
|
useNativeDriver: false,
|
|
86
|
-
}).start(
|
|
84
|
+
}).start(() => {
|
|
87
85
|
// Reset state
|
|
88
86
|
setMenuState(AndroidMenuStates.Hidden);
|
|
89
87
|
setMenuSizeAnimation(new Animated.ValueXY({ x: 0, y: 0 }));
|
|
@@ -91,11 +89,11 @@ export var useMenu = function (props) {
|
|
|
91
89
|
});
|
|
92
90
|
}, [opacityAnimation]);
|
|
93
91
|
// Hook to maintain the state of the Menu for non controlled and controlled components.
|
|
94
|
-
|
|
92
|
+
const [open, shouldFocusOnContainer, setOpen] = useMenuOpenState(isOpenControlled, props, context.setOpen, hide, show);
|
|
95
93
|
/**
|
|
96
94
|
* Checks the value of the open props and show the menu accordingly
|
|
97
95
|
*/
|
|
98
|
-
useEffect(
|
|
96
|
+
useEffect(() => {
|
|
99
97
|
if (props.open) {
|
|
100
98
|
show();
|
|
101
99
|
}
|
|
@@ -103,11 +101,11 @@ export var useMenu = function (props) {
|
|
|
103
101
|
/**
|
|
104
102
|
* onMenuLayout handles the start of the Animation when anchor is clicked
|
|
105
103
|
*/
|
|
106
|
-
|
|
104
|
+
const onMenuLayout = React.useCallback((e) => {
|
|
107
105
|
if (menuState === AndroidMenuStates.Animating) {
|
|
108
106
|
return;
|
|
109
107
|
}
|
|
110
|
-
|
|
108
|
+
const { width, height } = e.nativeEvent.layout;
|
|
111
109
|
setMenuHeight(height);
|
|
112
110
|
setMenuWidth(width);
|
|
113
111
|
setMenuState(AndroidMenuStates.Animating);
|
|
@@ -129,12 +127,12 @@ export var useMenu = function (props) {
|
|
|
129
127
|
/**
|
|
130
128
|
* onRequestClose handles the closing of the Menu when the MenuItem or scrim or outside is clicked
|
|
131
129
|
*/
|
|
132
|
-
|
|
130
|
+
const onRequestClose = (e) => {
|
|
133
131
|
setOpen(e, false, false);
|
|
134
132
|
};
|
|
135
133
|
// Adjust position of menu
|
|
136
|
-
|
|
137
|
-
useMemo(
|
|
134
|
+
const transforms = [];
|
|
135
|
+
useMemo(() => {
|
|
138
136
|
/**
|
|
139
137
|
* If the Menu width and SCREEN_INDENT cross the screen width then the Menu will be adjusted to the oppostion left side of the screen
|
|
140
138
|
*/
|
|
@@ -180,42 +178,70 @@ export var useMenu = function (props) {
|
|
|
180
178
|
/**
|
|
181
179
|
* Styles to be applied on the Modal Popover Animated.View
|
|
182
180
|
*/
|
|
183
|
-
|
|
184
|
-
return
|
|
181
|
+
const shadowMenuContainerStyle = useMemo(() => {
|
|
182
|
+
return {
|
|
183
|
+
opacity: opacityAnimation,
|
|
184
|
+
transform: transforms,
|
|
185
|
+
top,
|
|
186
|
+
// Switch left to right for rtl devices
|
|
187
|
+
...(isRTL ? { right: left } : { left }),
|
|
188
|
+
};
|
|
185
189
|
}, [isRTL, left, opacityAnimation, top, transforms]);
|
|
186
190
|
/**
|
|
187
191
|
* handles the state when menu is opening or closing with Animation
|
|
188
192
|
*/
|
|
189
|
-
|
|
190
|
-
|
|
193
|
+
const animationStarted = menuState === AndroidMenuStates.Animating;
|
|
194
|
+
const { testID } = props;
|
|
191
195
|
// Default behavior for submenu is to open on hover
|
|
192
196
|
// the ...props line below will override this behavior for a submenu
|
|
193
197
|
// or apply openOnHover if passed into a root Menu.
|
|
194
|
-
|
|
198
|
+
const openOnHover = isSubmenu;
|
|
195
199
|
// We need to be able to cancel the timer that gets set on
|
|
196
200
|
// hover out of the parent popover if the parent popover
|
|
197
201
|
// is also set to open/close on hover out. Otherwise
|
|
198
202
|
// the parent menu will close when the timeout passes.
|
|
199
|
-
|
|
200
|
-
return
|
|
203
|
+
const parentPopoverHoverOutTimer = isSubmenu ? context.popoverHoverOutTimer : undefined;
|
|
204
|
+
return {
|
|
205
|
+
openOnHover,
|
|
206
|
+
...props,
|
|
207
|
+
open,
|
|
208
|
+
setOpen,
|
|
209
|
+
shouldFocusOnContainer,
|
|
210
|
+
triggerRef,
|
|
211
|
+
isSubmenu,
|
|
212
|
+
isControlled: isOpenControlled,
|
|
213
|
+
parentPopoverHoverOutTimer,
|
|
214
|
+
setAnchorWidth,
|
|
215
|
+
shadowMenuContainerStyle,
|
|
216
|
+
_container,
|
|
217
|
+
onRequestClose,
|
|
218
|
+
onMenuLayout,
|
|
219
|
+
checked,
|
|
220
|
+
onCheckedChange,
|
|
221
|
+
menuHeight,
|
|
222
|
+
maxMenuHeight,
|
|
223
|
+
animationStarted,
|
|
224
|
+
menuSize,
|
|
225
|
+
testID,
|
|
226
|
+
};
|
|
201
227
|
};
|
|
202
228
|
/**
|
|
203
229
|
* useMenuOpenState handles the open and closing of the Menu based on the click
|
|
204
230
|
* It also takes care of Controlled Menu component by checking open variable
|
|
205
231
|
*
|
|
206
232
|
*/
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
233
|
+
const useMenuOpenState = (isControlled, props, parentSetOpen, hide, show) => {
|
|
234
|
+
const { defaultOpen, onOpenChange, open } = props;
|
|
235
|
+
const initialState = typeof defaultOpen !== 'undefined' ? defaultOpen : !!open;
|
|
236
|
+
const [openInternal, setOpenInternal] = React.useState(initialState);
|
|
237
|
+
const [shouldFocusOnContainer, setShouldFocusOnContainer] = React.useState(undefined);
|
|
238
|
+
const state = isControlled ? open : openInternal;
|
|
239
|
+
const lastCloseTimestampRef = React.useRef(-1);
|
|
214
240
|
/**
|
|
215
241
|
* setOpen handles the open of the Menu and setting focus on the Popover container
|
|
216
242
|
*/
|
|
217
|
-
|
|
218
|
-
|
|
243
|
+
const setOpen = React.useCallback((e, isOpen, bubble) => {
|
|
244
|
+
const openPrev = state;
|
|
219
245
|
if (!isControlled && (!isOpen || lastCloseTimestampRef.current + delayOpen <= Date.now())) {
|
|
220
246
|
setOpenInternal(isOpen);
|
|
221
247
|
}
|
|
@@ -240,17 +266,16 @@ var useMenuOpenState = function (isControlled, props, parentSetOpen, hide, show)
|
|
|
240
266
|
/**
|
|
241
267
|
* Call for useMenuCheckedState for identifying if any MenuItemCheckbox is checked or not
|
|
242
268
|
*/
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
var onCheckedChange = React.useCallback(function (e, checked) {
|
|
269
|
+
const useMenuCheckedState = (props) => {
|
|
270
|
+
const { checked, defaultChecked, onCheckedChange: onCheckedChangeOriginal } = props;
|
|
271
|
+
const [checkedInternal, setCheckedInternal] = React.useState(defaultChecked ?? checked ?? []);
|
|
272
|
+
const isControlled = typeof checked !== 'undefined';
|
|
273
|
+
const state = isControlled ? checked : checkedInternal;
|
|
274
|
+
const onCheckedChange = React.useCallback((e, checked) => {
|
|
250
275
|
if (!isControlled) {
|
|
251
276
|
setCheckedInternal(checked);
|
|
252
277
|
}
|
|
253
|
-
onCheckedChangeOriginal
|
|
278
|
+
onCheckedChangeOriginal?.(e, checked);
|
|
254
279
|
}, [isControlled, setCheckedInternal, onCheckedChangeOriginal]);
|
|
255
280
|
return [state, onCheckedChange];
|
|
256
281
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenu.android.js","sourceRoot":"","sources":["../../src/Menu/useMenu.android.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMenu.android.js","sourceRoot":"","sources":["../../src/Menu/useMenu.android.ts"],"names":[],"mappings":"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"}
|
package/lib/Menu/useMenu.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { Platform } from 'react-native';
|
|
4
3
|
import { isMouseEvent } from '@fluentui-react-native/interactive-hooks';
|
|
@@ -7,34 +6,46 @@ import { useMenuContext } from '../context/menuContext';
|
|
|
7
6
|
// for the same event causing us to immediately reopen
|
|
8
7
|
// a menu when we close it. Adding in a delay to prevent
|
|
9
8
|
// this behavior.
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
const delayOpen = 150;
|
|
10
|
+
export const useMenu = (props) => {
|
|
11
|
+
const triggerRef = React.useRef();
|
|
12
|
+
const context = useMenuContext();
|
|
13
|
+
const isSubmenu = context.triggerRef !== null;
|
|
14
|
+
const isOpenControlled = typeof props.open !== 'undefined';
|
|
15
|
+
const [open, shouldFocusOnContainer, setOpen] = useMenuOpenState(isOpenControlled, props, context.setOpen);
|
|
16
|
+
const [checked, onCheckedChange] = useMenuCheckedState(props);
|
|
18
17
|
// Default behavior for submenu is to open on hover
|
|
19
18
|
// the ...props line below will override this behavior for a submenu
|
|
20
19
|
// or apply openOnHover if passed into a root Menu.
|
|
21
|
-
|
|
20
|
+
const openOnHover = isSubmenu;
|
|
22
21
|
// We need to be able to cancel the timer that gets set on
|
|
23
22
|
// hover out of the parent popover if the parent popover
|
|
24
23
|
// is also set to open/close on hover out. Otherwise
|
|
25
24
|
// the parent menu will close when the timeout passes.
|
|
26
|
-
|
|
27
|
-
return
|
|
25
|
+
const parentPopoverHoverOutTimer = isSubmenu ? context.popoverHoverOutTimer : undefined;
|
|
26
|
+
return {
|
|
27
|
+
openOnHover,
|
|
28
|
+
...props,
|
|
29
|
+
open,
|
|
30
|
+
setOpen,
|
|
31
|
+
shouldFocusOnContainer,
|
|
32
|
+
checked,
|
|
33
|
+
onCheckedChange,
|
|
34
|
+
triggerRef,
|
|
35
|
+
isSubmenu,
|
|
36
|
+
isControlled: isOpenControlled,
|
|
37
|
+
parentPopoverHoverOutTimer,
|
|
38
|
+
};
|
|
28
39
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
const useMenuOpenState = (isControlled, props, parentSetOpen) => {
|
|
41
|
+
const { defaultOpen, onOpenChange, open } = props;
|
|
42
|
+
const initialState = typeof defaultOpen !== 'undefined' ? defaultOpen : !!open;
|
|
43
|
+
const [openInternal, setOpenInternal] = React.useState(initialState);
|
|
44
|
+
const [shouldFocusOnContainer, setShouldFocusOnContainer] = React.useState(undefined);
|
|
45
|
+
const state = isControlled ? open : openInternal;
|
|
46
|
+
const lastCloseTimestampRef = React.useRef(-1);
|
|
47
|
+
const setOpen = React.useCallback((e, isOpen, bubble) => {
|
|
48
|
+
const openPrev = state;
|
|
38
49
|
if (!isControlled && (!isOpen || lastCloseTimestampRef.current + delayOpen <= Date.now())) {
|
|
39
50
|
setOpenInternal(isOpen);
|
|
40
51
|
}
|
|
@@ -59,17 +70,16 @@ var useMenuOpenState = function (isControlled, props, parentSetOpen) {
|
|
|
59
70
|
}, [isControlled, state, onOpenChange, setOpenInternal, parentSetOpen]);
|
|
60
71
|
return [state, shouldFocusOnContainer, setOpen];
|
|
61
72
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
var onCheckedChange = React.useCallback(function (e, checked) {
|
|
73
|
+
const useMenuCheckedState = (props) => {
|
|
74
|
+
const { checked, defaultChecked, onCheckedChange: onCheckedChangeOriginal } = props;
|
|
75
|
+
const [checkedInternal, setCheckedInternal] = React.useState(defaultChecked ?? checked ?? []);
|
|
76
|
+
const isControlled = typeof checked !== 'undefined';
|
|
77
|
+
const state = isControlled ? checked : checkedInternal;
|
|
78
|
+
const onCheckedChange = React.useCallback((e, checked) => {
|
|
69
79
|
if (!isControlled) {
|
|
70
80
|
setCheckedInternal(checked);
|
|
71
81
|
}
|
|
72
|
-
onCheckedChangeOriginal
|
|
82
|
+
onCheckedChangeOriginal?.(e, checked);
|
|
73
83
|
}, [isControlled, setCheckedInternal, onCheckedChangeOriginal]);
|
|
74
84
|
return [state, onCheckedChange];
|
|
75
85
|
};
|
package/lib/Menu/useMenu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenu.js","sourceRoot":"","sources":["../../src/Menu/useMenu.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMenu.js","sourceRoot":"","sources":["../../src/Menu/useMenu.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
1
|
import React from 'react';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return
|
|
2
|
+
export const useMenuContextValue = (state) => {
|
|
3
|
+
const [triggerHoverOutTimer, setTriggerHoverOutTimer] = React.useState();
|
|
4
|
+
const [popoverHoverOutTimer, setPopoverHoverOutTimer] = React.useState();
|
|
5
|
+
return { ...state, popoverHoverOutTimer, triggerHoverOutTimer, setPopoverHoverOutTimer, setTriggerHoverOutTimer };
|
|
7
6
|
};
|
|
8
7
|
//# sourceMappingURL=useMenuContextValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuContextValue.js","sourceRoot":"","sources":["../../src/Menu/useMenuContextValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMenuContextValue.js","sourceRoot":"","sources":["../../src/Menu/useMenuContextValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAgB,EAAoB,EAAE;IACxE,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAA8B,CAAC;IACrG,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAkB,CAAC;IACzF,OAAO,EAAE,GAAG,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC;AACpH,CAAC,CAAC"}
|