@axelor/aos-mobile-core 9.1.11 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/apiProviders/Standard/ObjectFieldsProvider.d.ts +2 -2
- package/lib/apiProviders/Standard/ObjectFieldsProvider.js.map +1 -1
- package/lib/app/RootNavigator.d.ts +9 -8
- package/lib/app/RootNavigator.js +20 -19
- package/lib/app/RootNavigator.js.map +1 -1
- package/lib/app/modules/types.d.ts +2 -4
- package/lib/auth/components/index.d.ts +1 -1
- package/lib/auth/components/index.js.map +1 -1
- package/lib/auth/components/molecules/DashboardsCard/DashboardsCard.d.ts +1 -1
- package/lib/auth/components/molecules/DashboardsCard/DashboardsCard.js +6 -11
- package/lib/auth/components/molecules/DashboardsCard/DashboardsCard.js.map +1 -1
- package/lib/auth/components/molecules/ShortcutsCard/ShortcutsCard.d.ts +2 -4
- package/lib/auth/components/molecules/ShortcutsCard/ShortcutsCard.js +19 -22
- package/lib/auth/components/molecules/ShortcutsCard/ShortcutsCard.js.map +1 -1
- package/lib/auth/components/molecules/UserCard/UserCard.d.ts +2 -3
- package/lib/auth/components/molecules/UserCard/UserCard.js +28 -45
- package/lib/auth/components/molecules/UserCard/UserCard.js.map +1 -1
- package/lib/auth/components/molecules/index.d.ts +3 -5
- package/lib/auth/components/molecules/index.js +0 -2
- package/lib/auth/components/molecules/index.js.map +1 -1
- package/lib/auth/hooks/use-auth-headers.d.ts +1 -1
- package/lib/auth/hooks/use-auth-headers.js +2 -0
- package/lib/auth/hooks/use-auth-headers.js.map +1 -1
- package/lib/auth/i18n/en.json +4 -0
- package/lib/auth/i18n/fr.json +4 -0
- package/lib/auth/index.d.ts +2 -0
- package/lib/auth/index.js +2 -0
- package/lib/auth/index.js.map +1 -1
- package/lib/auth/screens/SettingsScreen.d.ts +2 -4
- package/lib/auth/screens/SettingsScreen.js +49 -83
- package/lib/auth/screens/SettingsScreen.js.map +1 -1
- package/lib/auth/screens/UserScreen.d.ts +2 -4
- package/lib/auth/screens/UserScreen.js +13 -16
- package/lib/auth/screens/UserScreen.js.map +1 -1
- package/lib/auth/screens/index.d.ts +2 -2
- package/lib/auth/screens/index.js.map +1 -1
- package/lib/auth/settings/SettingsProvider.d.ts +18 -0
- package/lib/auth/settings/SettingsProvider.js +73 -0
- package/lib/auth/settings/SettingsProvider.js.map +1 -0
- package/lib/auth/settings/index.d.ts +4 -0
- package/lib/auth/settings/index.js +22 -0
- package/lib/auth/settings/index.js.map +1 -0
- package/lib/auth/settings/settings.helper.d.ts +5 -0
- package/lib/{components/external/PlanningView/NavigationButton.js → auth/settings/settings.helper.js} +13 -17
- package/lib/auth/settings/settings.helper.js.map +1 -0
- package/lib/auth/settings/types.d.ts +36 -0
- package/lib/auth/settings/types.js +24 -0
- package/lib/auth/settings/types.js.map +1 -0
- package/lib/auth/settings/use-settings-register.d.ts +1 -0
- package/lib/auth/settings/use-settings-register.js +211 -0
- package/lib/auth/settings/use-settings-register.js.map +1 -0
- package/lib/auth/userScreen/UserScreenProvider.d.ts +15 -0
- package/lib/auth/userScreen/UserScreenProvider.js +64 -0
- package/lib/auth/userScreen/UserScreenProvider.js.map +1 -0
- package/lib/auth/userScreen/index.d.ts +3 -0
- package/lib/auth/userScreen/index.js +21 -0
- package/lib/auth/userScreen/index.js.map +1 -0
- package/lib/auth/userScreen/types.d.ts +14 -0
- package/lib/auth/userScreen/types.js +23 -0
- package/lib/auth/userScreen/types.js.map +1 -0
- package/lib/auth/userScreen/user-screen.helper.d.ts +5 -0
- package/lib/auth/userScreen/user-screen.helper.js +26 -0
- package/lib/auth/userScreen/user-screen.helper.js.map +1 -0
- package/lib/components/external/Camera/Camera.js +1 -1
- package/lib/components/external/Camera/CaptureButton.js +1 -1
- package/lib/components/external/Camera/CaptureButton.js.map +1 -1
- package/lib/components/external/PlanningView/PlanningView.d.ts +2 -1
- package/lib/components/external/PlanningView/PlanningView.js +21 -121
- package/lib/components/external/PlanningView/PlanningView.js.map +1 -1
- package/lib/components/external/PlanningView/agenda.helpers.d.ts +4 -13
- package/lib/components/external/PlanningView/agenda.helpers.js +27 -128
- package/lib/components/external/PlanningView/agenda.helpers.js.map +1 -1
- package/lib/components/external/Stopwatch/Stopwatch.js +28 -24
- package/lib/components/external/Stopwatch/Stopwatch.js.map +1 -1
- package/lib/components/external/Toast/ToastDisplay.d.ts +1 -1
- package/lib/components/external/Toast/ToastDisplay.js +46 -22
- package/lib/components/external/Toast/ToastDisplay.js.map +1 -1
- package/lib/components/molecules/DateDisplay/DateDisplay.js +1 -1
- package/lib/components/molecules/DatePicker/DatePicker.d.ts +2 -2
- package/lib/components/molecules/DatePicker/DatePicker.js +1 -1
- package/lib/components/molecules/DatePicker/DatePicker.js.map +1 -1
- package/lib/components/molecules/HeaderBand/HeaderBand.js +4 -9
- package/lib/components/molecules/HeaderBand/HeaderBand.js.map +1 -1
- package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.d.ts +1 -1
- package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.js +12 -30
- package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.js.map +1 -1
- package/lib/components/molecules/UploadFileInput/UploadFileInput.js +39 -40
- package/lib/components/molecules/UploadFileInput/UploadFileInput.js.map +1 -1
- package/lib/components/molecules/index.d.ts +0 -1
- package/lib/components/molecules/index.js +0 -1
- package/lib/components/molecules/index.js.map +1 -1
- package/lib/components/organisms/AOSImage/AOSImage.js +1 -1
- package/lib/components/organisms/AOSImage/AOSImage.js.map +1 -1
- package/lib/components/organisms/DateInput/DateInput.d.ts +1 -1
- package/lib/components/organisms/DateInput/DateInput.js +18 -15
- package/lib/components/organisms/DateInput/DateInput.js.map +1 -1
- package/lib/components/organisms/FilterContainer/FilterContainer.js +11 -8
- package/lib/components/organisms/FilterContainer/FilterContainer.js.map +1 -1
- package/lib/components/organisms/PopupFilters/PopupFilters.js +8 -3
- package/lib/components/organisms/PopupFilters/PopupFilters.js.map +1 -1
- package/lib/components/organisms/SignatureInput/SignatureInput.js +15 -23
- package/lib/components/organisms/SignatureInput/SignatureInput.js.map +1 -1
- package/lib/components/pages/CustomFieldForm/CustomFieldForm.js +1 -0
- package/lib/components/pages/CustomFieldForm/CustomFieldForm.js.map +1 -1
- package/lib/components/pages/FormView/Components/Field.js +2 -10
- package/lib/components/pages/FormView/Components/Field.js.map +1 -1
- package/lib/components/pages/FormView/Components/Panel.js +8 -6
- package/lib/components/pages/FormView/Components/Panel.js.map +1 -1
- package/lib/components/pages/FormView/FormView.d.ts +2 -1
- package/lib/components/pages/FormView/FormView.js +20 -4
- package/lib/components/pages/FormView/FormView.js.map +1 -1
- package/lib/components/templates/PeriodInput/PeriodInput.js +7 -6
- package/lib/components/templates/PeriodInput/PeriodInput.js.map +1 -1
- package/lib/components/templates/SocialNetworkLinks/SocialNetworkLinks.d.ts +3 -2
- package/lib/components/templates/SocialNetworkLinks/SocialNetworkLinks.js +9 -16
- package/lib/components/templates/SocialNetworkLinks/SocialNetworkLinks.js.map +1 -1
- package/lib/dashboards/component/AOPChart/DynamicSearchForm.d.ts +4 -4
- package/lib/dashboards/component/AOPChart/DynamicSearchForm.js +23 -23
- package/lib/dashboards/component/AOPChart/DynamicSearchForm.js.map +1 -1
- package/lib/dashboards/view/DashboardView.js +1 -1
- package/lib/dashboards/view/DashboardView.js.map +1 -1
- package/lib/features/authSlice.d.ts +1 -1
- package/lib/forms/api.helpers.d.ts +1 -1
- package/lib/forms/display.helpers.d.ts +2 -2
- package/lib/forms/display.helpers.js.map +1 -1
- package/lib/forms/types.d.ts +5 -5
- package/lib/header/FilterProvider.js +2 -2
- package/lib/header/FilterProvider.js.map +1 -1
- package/lib/header/HeaderActionsProvider.d.ts +2 -2
- package/lib/header/HeaderActionsProvider.js.map +1 -1
- package/lib/header/utils.d.ts +1 -1
- package/lib/header/utils.js +2 -6
- package/lib/header/utils.js.map +1 -1
- package/lib/hooks/index.d.ts +2 -2
- package/lib/hooks/index.js +2 -2
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-background-function.d.ts +1 -1
- package/lib/hooks/use-background-function.js +2 -2
- package/lib/hooks/use-background-function.js.map +1 -1
- package/lib/hooks/use-effect-debugger.d.ts +4 -3
- package/lib/hooks/use-effect-debugger.js.map +1 -1
- package/lib/hooks/use-header-registers.d.ts +1 -1
- package/lib/hooks/use-header-registers.js +1 -1
- package/lib/hooks/use-header-registers.js.map +1 -1
- package/lib/i18n/i18n.d.ts +1 -1
- package/lib/i18n/i18n.js +2 -1
- package/lib/i18n/i18n.js.map +1 -1
- package/lib/i18n/translations/en.json +4 -1
- package/lib/i18n/translations/fr.json +3 -0
- package/lib/loader/components/atoms/ProcessCard/ProcessCard.js +3 -5
- package/lib/loader/components/atoms/ProcessCard/ProcessCard.js.map +1 -1
- package/lib/navigator/Navigator.d.ts +4 -4
- package/lib/navigator/Navigator.js +45 -29
- package/lib/navigator/Navigator.js.map +1 -1
- package/lib/navigator/components/DrawerContent.js +51 -47
- package/lib/navigator/components/DrawerContent.js.map +1 -1
- package/lib/navigator/components/header/Header.d.ts +1 -2
- package/lib/navigator/components/header/Header.js +13 -35
- package/lib/navigator/components/header/Header.js.map +1 -1
- package/lib/navigator/components/header/HeaderButton.js +13 -6
- package/lib/navigator/components/header/HeaderButton.js.map +1 -1
- package/lib/navigator/components/header/HeaderOptionMenu.js +17 -3
- package/lib/navigator/components/header/HeaderOptionMenu.js.map +1 -1
- package/lib/navigator/components/header/HeaderOptionMenuItem.js +18 -15
- package/lib/navigator/components/header/HeaderOptionMenuItem.js.map +1 -1
- package/lib/navigator/components/menu/AuthMenu.js +9 -3
- package/lib/navigator/components/menu/AuthMenu.js.map +1 -1
- package/lib/navigator/components/menu/Menu.js +10 -4
- package/lib/navigator/components/menu/Menu.js.map +1 -1
- package/lib/navigator/components/menu/MenuIconButton.d.ts +3 -1
- package/lib/navigator/components/menu/MenuIconButton.js +60 -41
- package/lib/navigator/components/menu/MenuIconButton.js.map +1 -1
- package/lib/navigator/components/menu/MenuIconTile.d.ts +14 -0
- package/lib/navigator/components/menu/MenuIconTile.js +45 -0
- package/lib/navigator/components/menu/MenuIconTile.js.map +1 -0
- package/lib/navigator/components/menu/MenuItemEntry.d.ts +1 -1
- package/lib/navigator/components/menu/MenuItemEntry.js +30 -46
- package/lib/navigator/components/menu/MenuItemEntry.js.map +1 -1
- package/lib/navigator/components/menu/MenuItemList.js +13 -10
- package/lib/navigator/components/menu/MenuItemList.js.map +1 -1
- package/lib/navigator/components/menu/MenuSeparator.d.ts +1 -2
- package/lib/navigator/components/menu/MenuSeparator.js +16 -21
- package/lib/navigator/components/menu/MenuSeparator.js.map +1 -1
- package/lib/navigator/components/menu/SubMenuItem.js +1 -2
- package/lib/navigator/components/menu/SubMenuItem.js.map +1 -1
- package/lib/navigator/components/menu/SubMenuItemList.js +19 -4
- package/lib/navigator/components/menu/SubMenuItemList.js.map +1 -1
- package/lib/navigator/components/menu/index.d.ts +0 -1
- package/lib/navigator/components/menu/index.js +0 -1
- package/lib/navigator/components/menu/index.js.map +1 -1
- package/lib/navigator/helpers/index.d.ts +1 -0
- package/lib/navigator/helpers/index.js +1 -0
- package/lib/navigator/helpers/index.js.map +1 -1
- package/lib/navigator/helpers/module.helper.d.ts +3 -3
- package/lib/navigator/helpers/module.helper.js +3 -4
- package/lib/navigator/helpers/module.helper.js.map +1 -1
- package/lib/navigator/helpers/screen-orientation.helper.d.ts +6 -0
- package/lib/navigator/helpers/screen-orientation.helper.js +36 -0
- package/lib/navigator/helpers/screen-orientation.helper.js.map +1 -0
- package/lib/navigator/providers/module-navigator.d.ts +2 -2
- package/lib/navigator/providers/module-navigator.js +1 -3
- package/lib/navigator/providers/module-navigator.js.map +1 -1
- package/lib/screens/LoginScreen.d.ts +2 -4
- package/lib/screens/LoginScreen.js +45 -58
- package/lib/screens/LoginScreen.js.map +1 -1
- package/lib/screens/ProcessListScreen.js +1 -1
- package/lib/screens/ProcessListScreen.js.map +1 -1
- package/lib/screens/SessionManagementScreen.d.ts +2 -4
- package/lib/screens/SessionManagementScreen.js +15 -27
- package/lib/screens/SessionManagementScreen.js.map +1 -1
- package/lib/screens/index.js +0 -10
- package/lib/screens/index.js.map +1 -1
- package/lib/sessions/components/alerts/PopupCreateSession.d.ts +11 -10
- package/lib/sessions/components/alerts/PopupCreateSession.js +19 -32
- package/lib/sessions/components/alerts/PopupCreateSession.js.map +1 -1
- package/lib/sessions/components/alerts/PopupEditSession.d.ts +9 -8
- package/lib/sessions/components/alerts/PopupEditSession.js +9 -10
- package/lib/sessions/components/alerts/PopupEditSession.js.map +1 -1
- package/lib/sessions/components/alerts/PopupSession.d.ts +10 -9
- package/lib/sessions/components/alerts/PopupSession.js +9 -10
- package/lib/sessions/components/alerts/PopupSession.js.map +1 -1
- package/lib/sessions/components/display/LogoImage.d.ts +5 -5
- package/lib/sessions/components/display/LogoImage.js +16 -18
- package/lib/sessions/components/display/LogoImage.js.map +1 -1
- package/lib/sessions/components/display/SessionCard.d.ts +13 -10
- package/lib/sessions/components/display/SessionCard.js +53 -45
- package/lib/sessions/components/display/SessionCard.js.map +1 -1
- package/lib/sessions/components/display/SessionListCard.d.ts +14 -11
- package/lib/sessions/components/display/SessionListCard.js +24 -16
- package/lib/sessions/components/display/SessionListCard.js.map +1 -1
- package/lib/sessions/components/error/ErrorText.d.ts +5 -5
- package/lib/sessions/components/error/ErrorText.js +2 -4
- package/lib/sessions/components/error/ErrorText.js.map +1 -1
- package/lib/sessions/components/inputs/DefaultCheckbox.d.ts +1 -1
- package/lib/sessions/components/inputs/DefaultCheckbox.js +2 -10
- package/lib/sessions/components/inputs/DefaultCheckbox.js.map +1 -1
- package/lib/sessions/components/inputs/MfaCodeInput.d.ts +1 -1
- package/lib/sessions/components/inputs/MfaCodeInput.js +3 -14
- package/lib/sessions/components/inputs/MfaCodeInput.js.map +1 -1
- package/lib/sessions/components/inputs/PasswordInput.d.ts +9 -8
- package/lib/sessions/components/inputs/PasswordInput.js +7 -18
- package/lib/sessions/components/inputs/PasswordInput.js.map +1 -1
- package/lib/sessions/components/inputs/SessionInputs.d.ts +14 -13
- package/lib/sessions/components/inputs/SessionInputs.js +25 -48
- package/lib/sessions/components/inputs/SessionInputs.js.map +1 -1
- package/lib/sessions/components/inputs/SessionNameInput.d.ts +9 -8
- package/lib/sessions/components/inputs/SessionNameInput.js +6 -17
- package/lib/sessions/components/inputs/SessionNameInput.js.map +1 -1
- package/lib/sessions/components/inputs/UrlInput.d.ts +11 -10
- package/lib/sessions/components/inputs/UrlInput.js +8 -18
- package/lib/sessions/components/inputs/UrlInput.js.map +1 -1
- package/lib/sessions/components/inputs/UsernameInput.d.ts +11 -10
- package/lib/sessions/components/inputs/UsernameInput.js +7 -18
- package/lib/sessions/components/inputs/UsernameInput.js.map +1 -1
- package/lib/tools/ContactProvider.d.ts +1 -0
- package/lib/tools/ContactProvider.js +21 -22
- package/lib/tools/ContactProvider.js.map +1 -1
- package/lib/tools/LinkingProvider.d.ts +2 -2
- package/lib/tools/LinkingProvider.js +4 -0
- package/lib/tools/LinkingProvider.js.map +1 -1
- package/lib/utils/image.d.ts +2 -2
- package/lib/utils/image.js +1 -1
- package/lib/utils/image.js.map +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/registry.helper.d.ts +9 -0
- package/lib/{components/molecules/FocusScreen/FocusScreen.js → utils/registry.helper.js} +18 -17
- package/lib/utils/registry.helper.js.map +1 -0
- package/package.json +42 -46
- package/lib/auth/components/molecules/NavigationToolsButton/NavigationToolsButton.d.ts +0 -3
- package/lib/auth/components/molecules/NavigationToolsButton/NavigationToolsButton.js +0 -60
- package/lib/auth/components/molecules/NavigationToolsButton/NavigationToolsButton.js.map +0 -1
- package/lib/auth/components/molecules/TranslationsButton/TranslationsButton.d.ts +0 -3
- package/lib/auth/components/molecules/TranslationsButton/TranslationsButton.js +0 -61
- package/lib/auth/components/molecules/TranslationsButton/TranslationsButton.js.map +0 -1
- package/lib/components/external/PlanningView/AgendaItemDisplay.d.ts +0 -8
- package/lib/components/external/PlanningView/AgendaItemDisplay.js +0 -81
- package/lib/components/external/PlanningView/AgendaItemDisplay.js.map +0 -1
- package/lib/components/external/PlanningView/DayDisplay.d.ts +0 -5
- package/lib/components/external/PlanningView/DayDisplay.js +0 -59
- package/lib/components/external/PlanningView/DayDisplay.js.map +0 -1
- package/lib/components/external/PlanningView/MonthDisplay.d.ts +0 -6
- package/lib/components/external/PlanningView/MonthDisplay.js +0 -46
- package/lib/components/external/PlanningView/MonthDisplay.js.map +0 -1
- package/lib/components/external/PlanningView/NavigationButton.d.ts +0 -7
- package/lib/components/external/PlanningView/NavigationButton.js.map +0 -1
- package/lib/components/molecules/FocusScreen/FocusScreen.d.ts +0 -12
- package/lib/components/molecules/FocusScreen/FocusScreen.js.map +0 -1
- package/lib/navigator/components/menu/MenuTitle.d.ts +0 -8
- package/lib/navigator/components/menu/MenuTitle.js +0 -55
- package/lib/navigator/components/menu/MenuTitle.js.map +0 -1
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import React, { useMemo } from 'react';
|
|
19
19
|
import { StyleSheet, TouchableOpacity } from 'react-native';
|
|
20
|
-
import { Badge, Icon, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
20
|
+
import { Badge, Card, Icon, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
21
21
|
const BADGE_SIZE = 16;
|
|
22
22
|
const HeaderOptionMenuItem = ({ icon, color, indicator = 0, hideIf = false, disableIf = false, onPress, customComponent, }) => {
|
|
23
23
|
const Colors = useThemeColor();
|
|
@@ -30,16 +30,13 @@ const HeaderOptionMenuItem = ({ icon, color, indicator = 0, hideIf = false, disa
|
|
|
30
30
|
}
|
|
31
31
|
return Colors.secondaryColor_dark.background;
|
|
32
32
|
}, [Colors, color, disableIf]);
|
|
33
|
-
if (hideIf)
|
|
33
|
+
if (hideIf)
|
|
34
34
|
return null;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
foreground: Colors.text,
|
|
41
|
-
background: Colors.primaryColor.background,
|
|
42
|
-
}} title={indicator}/>)}
|
|
35
|
+
return (<TouchableOpacity onPress={onPress} disabled={disableIf} activeOpacity={0.9}>
|
|
36
|
+
<Card style={styles.container}>
|
|
37
|
+
{customComponent != null ? (React.cloneElement(customComponent)) : (<Icon name={icon} color={_color} size={18}/>)}
|
|
38
|
+
{indicator > 0 && (<Badge style={styles.badge} txtStyle={styles.badgeText} color={Colors.errorColor} title={indicator}/>)}
|
|
39
|
+
</Card>
|
|
43
40
|
</TouchableOpacity>);
|
|
44
41
|
};
|
|
45
42
|
const styles = StyleSheet.create({
|
|
@@ -48,17 +45,23 @@ const styles = StyleSheet.create({
|
|
|
48
45
|
height: BADGE_SIZE,
|
|
49
46
|
borderRadius: Math.ceil(BADGE_SIZE / 2),
|
|
50
47
|
position: 'absolute',
|
|
51
|
-
top: -
|
|
52
|
-
right: -
|
|
48
|
+
top: -6,
|
|
49
|
+
right: -6,
|
|
53
50
|
zIndex: 10,
|
|
51
|
+
paddingVertical: 0,
|
|
52
|
+
paddingHorizontal: 0,
|
|
54
53
|
},
|
|
55
54
|
badgeText: {
|
|
56
|
-
fontSize: Math.ceil(BADGE_SIZE /
|
|
55
|
+
fontSize: Math.ceil(BADGE_SIZE / 1.8),
|
|
57
56
|
},
|
|
58
57
|
container: {
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
marginLeft: 8,
|
|
59
|
+
padding: 10,
|
|
60
|
+
borderRadius: 10,
|
|
61
61
|
flexDirection: 'row',
|
|
62
|
+
paddingHorizontal: 10,
|
|
63
|
+
paddingRight: 10,
|
|
64
|
+
paddingVertical: 10,
|
|
62
65
|
},
|
|
63
66
|
});
|
|
64
67
|
export default HeaderOptionMenuItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderOptionMenuItem.js","sourceRoot":"","sources":["../../../../src/navigator/components/header/HeaderOptionMenuItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAe,OAAO,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"HeaderOptionMenuItem.js","sourceRoot":"","sources":["../../../../src/navigator/components/header/HeaderOptionMenuItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAe,OAAO,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAYvE,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,oBAAoB,GAAG,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,SAAS,GAAG,CAAC,EACb,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,eAAe,GACW,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC;QAC1C,CAAC;QAED,OAAO,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC;IAC/C,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/B,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAExB,OAAO,CACL,CAAC,gBAAgB,CACf,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,SAAS,CAAC,CACpB,aAAa,CAAC,CAAC,GAAG,CAAC,CACnB;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;QAAA,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,CACzB,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CACpC,CAAC,CAAC,CAAC,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAG,CAC9C,CACD;QAAA,CAAC,SAAS,GAAG,CAAC,IAAI,CAChB,CAAC,KAAK,CACJ,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACpB,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC3B,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CACzB,KAAK,CAAC,CAAC,SAAS,CAAC,EACjB,CACH,CACH;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACvC,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC,CAAC;QACP,KAAK,EAAE,CAAC,CAAC;QACT,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,CAAC;KACrB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;KACtC;IACD,SAAS,EAAE;QACT,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,EAAE;QACrB,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;KACpB;CACF,CAAC,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
|
|
@@ -16,15 +16,21 @@
|
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import React from 'react';
|
|
19
|
+
import { StyleSheet } from 'react-native';
|
|
19
20
|
import { authModule } from '../../../auth';
|
|
20
21
|
import { useActiveModule } from '../../providers';
|
|
21
22
|
import MenuIconButton from './MenuIconButton';
|
|
22
23
|
const AuthMenu = ({ isVisible = true, onPress }) => {
|
|
23
24
|
const { activeModule } = useActiveModule();
|
|
24
|
-
if (!isVisible)
|
|
25
|
+
if (!isVisible)
|
|
25
26
|
return null;
|
|
26
|
-
}
|
|
27
|
-
return (<MenuIconButton key={authModule.title} icon={authModule.icon} subtitle={authModule.subtitle} disabled={authModule.disabled} isActive={activeModule?.name === authModule.name} onPress={() => onPress(authModule)} rounded/>);
|
|
27
|
+
return (<MenuIconButton style={styles.align} icon={authModule.icon} subtitle={authModule.subtitle} disabled={authModule.disabled} isActive={activeModule?.name === authModule.name} onPress={() => onPress(authModule)} rounded/>);
|
|
28
28
|
};
|
|
29
|
+
const styles = StyleSheet.create({
|
|
30
|
+
align: {
|
|
31
|
+
marginVertical: 8,
|
|
32
|
+
alignSelf: 'flex-start',
|
|
33
|
+
},
|
|
34
|
+
});
|
|
29
35
|
export default AuthMenu;
|
|
30
36
|
//# sourceMappingURL=AuthMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthMenu.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/AuthMenu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAO9C,MAAM,QAAQ,GAAG,CAAC,EAAC,SAAS,GAAG,IAAI,EAAE,OAAO,EAAgB,EAAE,EAAE;IAC9D,MAAM,EAAC,YAAY,EAAC,GAAG,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC,SAAS
|
|
1
|
+
{"version":3,"file":"AuthMenu.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/AuthMenu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAO9C,MAAM,QAAQ,GAAG,CAAC,EAAC,SAAS,GAAG,IAAI,EAAE,OAAO,EAAgB,EAAE,EAAE;IAC9D,MAAM,EAAC,YAAY,EAAC,GAAG,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO,CACL,CAAC,cAAc,CACb,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACpB,IAAI,CAAC,CAAC,UAAU,CAAC,IAAK,CAAC,CACvB,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC9B,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC9B,QAAQ,CAAC,CAAC,YAAY,EAAE,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CACjD,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CACnC,OAAO,EACP,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,YAAY;KACxB;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC"}
|
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import React, { useMemo } from 'react';
|
|
19
19
|
import { View, StyleSheet, ScrollView } from 'react-native';
|
|
20
|
-
import {
|
|
20
|
+
import { HorizontalRule, Text, useThemeColor, WarningCard, } from '@axelor/aos-mobile-ui';
|
|
21
21
|
import { useTranslator } from '../../../i18n';
|
|
22
22
|
import { getCompatibilityError, getMenuTitle, isMenuIncompatible, } from '../../helpers';
|
|
23
23
|
import MenuItemList from './MenuItemList';
|
|
24
|
+
import MenuIconTile from './MenuIconTile';
|
|
24
25
|
const Menu = ({ state, navigation, authMenu, activeModule, onItemClick, compatibility, showClose = false, onClose, }) => {
|
|
25
26
|
const I18n = useTranslator();
|
|
26
27
|
const Colors = useThemeColor();
|
|
@@ -30,8 +31,9 @@ const Menu = ({ state, navigation, authMenu, activeModule, onItemClick, compatib
|
|
|
30
31
|
<ScrollView contentContainerStyle={styles.moduleMenuContainer} showsVerticalScrollIndicator={false}>
|
|
31
32
|
<View style={styles.menuTitleContainer}>
|
|
32
33
|
<Text style={styles.menuTitle}>{title}</Text>
|
|
33
|
-
{showClose && (<
|
|
34
|
+
{showClose && (<MenuIconTile icon="x-lg" iconSize={18} size={36} variant="neutral" onPress={onClose}/>)}
|
|
34
35
|
</View>
|
|
36
|
+
<HorizontalRule style={styles.titleSeparator} color={Colors.secondaryColor.background_light} width={0.5}/>
|
|
35
37
|
{compatibilityError && (<WarningCard errorMessage={getCompatibilityError(compatibility, I18n)}/>)}
|
|
36
38
|
<MenuItemList state={state} navigation={navigation} activeModule={activeModule} onItemClick={onItemClick} disabled={compatibilityError}/>
|
|
37
39
|
</ScrollView>
|
|
@@ -53,13 +55,17 @@ const styles = StyleSheet.create({
|
|
|
53
55
|
justifyContent: 'space-between',
|
|
54
56
|
alignItems: 'center',
|
|
55
57
|
paddingHorizontal: 16,
|
|
56
|
-
marginBottom:
|
|
58
|
+
marginBottom: 12,
|
|
57
59
|
},
|
|
58
60
|
menuTitle: {
|
|
59
61
|
flexShrink: 1,
|
|
60
|
-
fontSize:
|
|
62
|
+
fontSize: 22,
|
|
61
63
|
fontWeight: 'bold',
|
|
62
64
|
},
|
|
65
|
+
titleSeparator: {
|
|
66
|
+
marginHorizontal: 16,
|
|
67
|
+
marginBottom: 8,
|
|
68
|
+
},
|
|
63
69
|
authMenuIcon: {
|
|
64
70
|
marginBottom: 12,
|
|
65
71
|
marginLeft: 12,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/Menu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,13 @@ interface MenuIconButtonProps {
|
|
|
4
4
|
style?: any;
|
|
5
5
|
icon: string;
|
|
6
6
|
onPress: () => void;
|
|
7
|
+
title?: string;
|
|
8
|
+
showTitle?: boolean;
|
|
7
9
|
isActive?: boolean;
|
|
8
10
|
subtitle?: string;
|
|
9
11
|
rounded?: boolean;
|
|
10
12
|
disabled?: boolean;
|
|
11
13
|
compatibility?: Compatibility;
|
|
12
14
|
}
|
|
13
|
-
declare const MenuIconButton: ({ style, icon, onPress, isActive, subtitle, rounded, disabled, compatibility, }: MenuIconButtonProps) => React.JSX.Element;
|
|
15
|
+
declare const MenuIconButton: ({ style, icon, onPress, title, showTitle, isActive, subtitle, rounded, disabled, compatibility, }: MenuIconButtonProps) => React.JSX.Element;
|
|
14
16
|
export default MenuIconButton;
|
|
@@ -16,65 +16,84 @@
|
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import React, { useMemo } from 'react';
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
19
|
+
import { StyleSheet, TouchableOpacity, useWindowDimensions, View, } from 'react-native';
|
|
20
|
+
import { Card, IconTile, InfoBubble, Text, useConfig, useThemeColor, } from '@axelor/aos-mobile-ui';
|
|
21
21
|
import { useTranslator } from '../../../i18n';
|
|
22
22
|
import { getCompatibilityError, isMenuIncompatible } from '../../helpers';
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const MenuIconButton = ({ style, icon, onPress, isActive = false, subtitle, rounded = false, disabled = false, compatibility, }) => {
|
|
23
|
+
const TILE_SIZE = 20;
|
|
24
|
+
const LARGE_SCREEN_WIDTH = 768;
|
|
25
|
+
const DRAWER_HORIZONTAL_SPACING = 32;
|
|
26
|
+
const MenuIconButton = ({ style, icon, onPress, title, showTitle = false, isActive = false, subtitle, rounded = false, disabled = false, compatibility, }) => {
|
|
28
27
|
const Colors = useThemeColor();
|
|
29
28
|
const I18n = useTranslator();
|
|
30
29
|
const { showSubtitles } = useConfig();
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
: Colors.backgroundColor, [Colors, disabled, isActive]);
|
|
36
|
-
const styles = useMemo(() => getStyles(Colors, rounded, _color), [Colors, _color, rounded]);
|
|
30
|
+
const { width } = useWindowDimensions();
|
|
31
|
+
const expandedWidth = useMemo(() => width * (width >= LARGE_SCREEN_WIDTH ? 0.5 : 0.85) -
|
|
32
|
+
DRAWER_HORIZONTAL_SPACING, [width]);
|
|
33
|
+
const styles = useMemo(() => getStyles(width), [width]);
|
|
37
34
|
const compatibilityError = useMemo(() => isMenuIncompatible(compatibility), [compatibility]);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
const isExpanded = useMemo(() => showTitle && title != null, [showTitle, title]);
|
|
36
|
+
const isPrimary = useMemo(() => isExpanded || isActive, [isActive, isExpanded]);
|
|
37
|
+
return (<TouchableOpacity onPress={onPress} disabled={disabled || compatibilityError} activeOpacity={0.9}>
|
|
38
|
+
<Card style={[
|
|
39
|
+
styles.card,
|
|
40
|
+
rounded && styles.roundedTile,
|
|
41
|
+
isExpanded && { width: expandedWidth },
|
|
42
|
+
style,
|
|
43
|
+
]}>
|
|
44
|
+
<View style={styles.tileContainer}>
|
|
45
|
+
<IconTile style={rounded && styles.roundedTile} icon={icon} iconSize={TILE_SIZE} color={isPrimary ? Colors.primaryColor : undefined} backgroundColor={isPrimary ? undefined : Colors.backgroundColor} iconColor={isPrimary ? undefined : Colors.secondaryColor_dark.background} disabled={disabled} onPress={onPress}/>
|
|
46
|
+
{compatibilityError && !isExpanded && (<InfoBubble style={styles.infoBubble} usePopup={true} iconName="exclamation-triangle-fill" badgeColor={Colors.errorColor} textIndicationStyle={styles.textIndicationStyle} indication={getCompatibilityError(compatibility, I18n)}/>)}
|
|
47
|
+
</View>
|
|
48
|
+
{isExpanded && (<View style={styles.titleContainer}>
|
|
49
|
+
<Text writingType="title" textColor={disabled ? Colors.secondaryColor.background : undefined} numberOfLines={2}>
|
|
50
|
+
{title}
|
|
51
|
+
</Text>
|
|
52
|
+
{compatibilityError && (<Text fontSize={10} textColor={Colors.errorColor.background}>
|
|
53
|
+
{getCompatibilityError(compatibility, I18n, false)}
|
|
54
|
+
</Text>)}
|
|
55
|
+
</View>)}
|
|
56
|
+
</Card>
|
|
57
|
+
{!isExpanded && showSubtitles && (<Text style={styles.subtitle} fontSize={10} writingType={isActive ? 'important' : undefined} textColor={isActive ? Colors.primaryColor.background : undefined} numberOfLines={1}>
|
|
58
|
+
{I18n.t(subtitle ?? '')}
|
|
47
59
|
</Text>)}
|
|
48
60
|
</TouchableOpacity>);
|
|
49
61
|
};
|
|
50
|
-
const getStyles = (
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
62
|
+
const getStyles = (windowWidth) => StyleSheet.create({
|
|
63
|
+
card: {
|
|
64
|
+
paddingVertical: 8,
|
|
65
|
+
paddingHorizontal: 8,
|
|
66
|
+
paddingRight: 8,
|
|
67
|
+
marginVertical: 4,
|
|
55
68
|
flexDirection: 'row',
|
|
56
|
-
|
|
57
|
-
elevation: 2,
|
|
58
|
-
shadowOpacity: 0.5,
|
|
59
|
-
shadowColor: Colors.secondaryColor.background,
|
|
60
|
-
backgroundColor: _color,
|
|
61
|
-
shadowOffset: { width: 0, height: 0 },
|
|
62
|
-
zIndex: 10,
|
|
69
|
+
alignItems: 'center',
|
|
63
70
|
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
roundedTile: {
|
|
72
|
+
borderRadius: TILE_SIZE,
|
|
73
|
+
},
|
|
74
|
+
tileContainer: {
|
|
75
|
+
justifyContent: 'center',
|
|
76
|
+
alignItems: 'center',
|
|
68
77
|
},
|
|
69
78
|
infoBubble: {
|
|
70
79
|
position: 'absolute',
|
|
71
|
-
bottom: -
|
|
72
|
-
right: -
|
|
80
|
+
bottom: -8,
|
|
81
|
+
right: -8,
|
|
73
82
|
},
|
|
74
83
|
textIndicationStyle: {
|
|
75
|
-
width:
|
|
84
|
+
width: windowWidth * 0.6,
|
|
76
85
|
top: 0,
|
|
77
86
|
},
|
|
87
|
+
titleContainer: {
|
|
88
|
+
flex: 1,
|
|
89
|
+
marginLeft: 12,
|
|
90
|
+
justifyContent: 'center',
|
|
91
|
+
},
|
|
92
|
+
subtitle: {
|
|
93
|
+
width: TILE_SIZE * 2,
|
|
94
|
+
alignSelf: 'center',
|
|
95
|
+
textAlign: 'center',
|
|
96
|
+
},
|
|
78
97
|
});
|
|
79
98
|
export default MenuIconButton;
|
|
80
99
|
//# sourceMappingURL=MenuIconButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuIconButton.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/MenuIconButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"MenuIconButton.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/MenuIconButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,SAAS,EACT,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAExE,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAerC,MAAM,cAAc,GAAG,CAAC,EACtB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,aAAa,GACO,EAAE,EAAE;IACxB,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,EAAC,aAAa,EAAC,GAAG,SAAS,EAAE,CAAC;IACpC,MAAM,EAAC,KAAK,EAAC,GAAG,mBAAmB,EAAE,CAAC;IAEtC,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CACH,KAAK,GAAG,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,yBAAyB,EAC3B,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAExD,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,EACvC,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,SAAS,IAAI,KAAK,IAAI,IAAI,EAChC,CAAC,SAAS,EAAE,KAAK,CAAC,CACnB,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,UAAU,IAAI,QAAQ,EAC5B,CAAC,QAAQ,EAAE,UAAU,CAAC,CACvB,CAAC;IAEF,OAAO,CACL,CAAC,gBAAgB,CACf,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CACzC,aAAa,CAAC,CAAC,GAAG,CAAC,CACnB;MAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,IAAI;YACX,OAAO,IAAI,MAAM,CAAC,WAAW;YAC7B,UAAU,IAAI,EAAC,KAAK,EAAE,aAAa,EAAC;YACpC,KAAK;SACN,CAAC,CACF;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAChC;UAAA,CAAC,QAAQ,CACP,KAAK,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,CACrC,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,QAAQ,CAAC,CAAC,SAAS,CAAC,CACpB,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CACnD,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAChE,SAAS,CAAC,CACR,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,UACrD,CAAC,CACD,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,OAAO,CAAC,CAAC,OAAO,CAAC,EAEnB;UAAA,CAAC,kBAAkB,IAAI,CAAC,UAAU,IAAI,CACpC,CAAC,UAAU,CACT,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CACzB,QAAQ,CAAC,CAAC,IAAI,CAAC,CACf,QAAQ,CAAC,2BAA2B,CACpC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAC9B,mBAAmB,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAChD,UAAU,CAAC,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAE,CAAC,EACxD,CACH,CACH;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,UAAU,IAAI,CACb,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CACjC;YAAA,CAAC,IAAI,CACH,WAAW,CAAC,OAAO,CACnB,SAAS,CAAC,CACR,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,SAChD,CAAC,CACD,aAAa,CAAC,CAAC,CAAC,CAAC,CACjB;cAAA,CAAC,KAAK,CACR;YAAA,EAAE,IAAI,CACN;YAAA,CAAC,kBAAkB,IAAI,CACrB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAC1D;gBAAA,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CACpD;cAAA,EAAE,IAAI,CAAC,CACR,CACH;UAAA,EAAE,IAAI,CAAC,CACR,CACH;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,CAAC,UAAU,IAAI,aAAa,IAAI,CAC/B,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CACvB,QAAQ,CAAC,CAAC,EAAE,CAAC,CACb,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAChD,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CACjE,aAAa,CAAC,CAAC,CAAC,CAAC,CACjB;UAAA,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CACzB;QAAA,EAAE,IAAI,CAAC,CACR,CACH;IAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,EAAE,CACxC,UAAU,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,CAAC;QACpB,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;KACrB;IACD,WAAW,EAAE;QACX,YAAY,EAAE,SAAS;KACxB;IACD,aAAa,EAAE;QACb,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,CAAC,CAAC;QACV,KAAK,EAAE,CAAC,CAAC;KACV;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,WAAW,GAAG,GAAG;QACxB,GAAG,EAAE,CAAC;KACP;IACD,cAAc,EAAE;QACd,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,QAAQ;KACzB;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,SAAS,GAAG,CAAC;QACpB,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,CAAC;AAEL,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type MenuIconTileVariant = 'primary' | 'neutral';
|
|
3
|
+
interface MenuIconTileProps {
|
|
4
|
+
style?: any;
|
|
5
|
+
icon: string;
|
|
6
|
+
iconSize?: number;
|
|
7
|
+
size?: number;
|
|
8
|
+
variant?: MenuIconTileVariant;
|
|
9
|
+
highlighted?: boolean;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
onPress?: () => void;
|
|
12
|
+
}
|
|
13
|
+
declare const MenuIconTile: ({ style, icon, iconSize, size, variant, highlighted, disabled, onPress, }: MenuIconTileProps) => React.JSX.Element;
|
|
14
|
+
export default MenuIconTile;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2026 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useMemo } from 'react';
|
|
19
|
+
import { IconTile, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
20
|
+
const TILE_SIZE = 40;
|
|
21
|
+
const MenuIconTile = ({ style, icon, iconSize = 20, size = TILE_SIZE, variant = 'primary', highlighted = false, disabled = false, onPress, }) => {
|
|
22
|
+
const Colors = useThemeColor();
|
|
23
|
+
const backgroundColor = useMemo(() => {
|
|
24
|
+
if (variant === 'neutral') {
|
|
25
|
+
return Colors.secondaryColor.background_light;
|
|
26
|
+
}
|
|
27
|
+
return highlighted
|
|
28
|
+
? Colors.backgroundColor
|
|
29
|
+
: Colors.primaryColor.background_light;
|
|
30
|
+
}, [Colors, variant, highlighted]);
|
|
31
|
+
const iconColor = useMemo(() => {
|
|
32
|
+
if (disabled) {
|
|
33
|
+
return Colors.secondaryColor.background_light;
|
|
34
|
+
}
|
|
35
|
+
return variant === 'primary'
|
|
36
|
+
? Colors.primaryColor.background
|
|
37
|
+
: Colors.secondaryColor_dark.background;
|
|
38
|
+
}, [Colors, disabled, variant]);
|
|
39
|
+
const borderStyle = useMemo(() => variant === 'primary' && highlighted
|
|
40
|
+
? { borderWidth: 1, borderColor: Colors.primaryColor.background }
|
|
41
|
+
: null, [Colors, variant, highlighted]);
|
|
42
|
+
return (<IconTile style={[borderStyle, style]} icon={icon} iconSize={iconSize} size={size} backgroundColor={backgroundColor} iconColor={iconColor} disabled={disabled} onPress={onPress}/>);
|
|
43
|
+
};
|
|
44
|
+
export default MenuIconTile;
|
|
45
|
+
//# sourceMappingURL=MenuIconTile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuIconTile.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/MenuIconTile.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAI9D,MAAM,SAAS,GAAG,EAAE,CAAC;AAarB,MAAM,YAAY,GAAG,CAAC,EACpB,KAAK,EACL,IAAI,EACJ,QAAQ,GAAG,EAAE,EACb,IAAI,GAAG,SAAS,EAChB,OAAO,GAAG,SAAS,EACnB,WAAW,GAAG,KAAK,EACnB,QAAQ,GAAG,KAAK,EAChB,OAAO,GACW,EAAE,EAAE;IACtB,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAChD,CAAC;QAED,OAAO,WAAW;YAChB,CAAC,CAAC,MAAM,CAAC,eAAe;YACxB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC;IAC3C,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAChD,CAAC;QAED,OAAO,OAAO,KAAK,SAAS;YAC1B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU;YAChC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC;IAC5C,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAEhC,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CACH,OAAO,KAAK,SAAS,IAAI,WAAW;QAClC,CAAC,CAAC,EAAC,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,UAAU,EAAC;QAC/D,CAAC,CAAC,IAAI,EACV,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAC/B,CAAC;IAEF,OAAO,CACL,CAAC,QAAQ,CACP,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,eAAe,CAAC,CAAC,eAAe,CAAC,CACjC,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,OAAO,CAAC,CAAC,OAAO,CAAC,EACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -20,70 +20,54 @@ import { View, StyleSheet, TouchableOpacity } from 'react-native';
|
|
|
20
20
|
import { Icon, Text, WarningCard, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
21
21
|
import { useTranslator } from '../../../i18n';
|
|
22
22
|
import { getCompatibilityError, isMenuIncompatible } from '../../helpers';
|
|
23
|
-
|
|
23
|
+
import MenuIconTile from './MenuIconTile';
|
|
24
|
+
const MenuItemEntry = ({ style, icon, title, compatibility, onPress, isActive = false, disabled = false, isDropdown = false, dropdown = false, iconSize = 20, }) => {
|
|
24
25
|
const Colors = useThemeColor();
|
|
25
26
|
const I18n = useTranslator();
|
|
26
27
|
const compatibilityError = useMemo(() => isMenuIncompatible(compatibility), [compatibility]);
|
|
27
28
|
const menuDisabled = useMemo(() => disabled || compatibilityError, [compatibilityError, disabled]);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
styles.
|
|
32
|
-
|
|
33
|
-
backgroundColor:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
<Text style={styles.menuItemTitle} textColor={menuDisabled
|
|
44
|
-
? Colors.secondaryColor.background_light
|
|
45
|
-
: Colors.text}>
|
|
46
|
-
{title}
|
|
47
|
-
</Text>
|
|
48
|
-
</View>
|
|
49
|
-
<Icon name={dropdown ? 'chevron-up' : 'chevron-down'} color={Colors.secondaryColor_dark.background} style={styles.dropdownIcon} visible={isDropdown && !compatibilityError}/>
|
|
50
|
-
<Icon name="exclamation-triangle-fill" color={Colors.errorColor.background} style={styles.dropdownIcon} visible={compatibilityError}/>
|
|
51
|
-
</View>
|
|
29
|
+
const highlighted = useMemo(() => isActive || dropdown, [dropdown, isActive]);
|
|
30
|
+
return (<TouchableOpacity onPress={onPress} disabled={menuDisabled} activeOpacity={0.9}>
|
|
31
|
+
<View style={[
|
|
32
|
+
styles.row,
|
|
33
|
+
highlighted
|
|
34
|
+
? { backgroundColor: Colors.primaryColor.background_light }
|
|
35
|
+
: null,
|
|
36
|
+
style,
|
|
37
|
+
]}>
|
|
38
|
+
<MenuIconTile style={styles.iconTile} icon={icon} iconSize={iconSize} highlighted={highlighted} disabled={menuDisabled}/>
|
|
39
|
+
<Text style={styles.menuItemTitle} fontSize={14} textColor={menuDisabled ? Colors.secondaryColor.background_light : Colors.text}>
|
|
40
|
+
{title}
|
|
41
|
+
</Text>
|
|
42
|
+
<Icon name={dropdown ? 'chevron-up' : 'chevron-down'} color={Colors.primaryColor.background} style={styles.dropdownIcon} visible={isDropdown && !compatibilityError}/>
|
|
43
|
+
<Icon name="exclamation-triangle-fill" color={Colors.errorColor.background} style={styles.dropdownIcon} visible={compatibilityError}/>
|
|
52
44
|
</View>
|
|
53
45
|
{compatibilityError && (<WarningCard style={styles.compatibilityError} errorMessage={getCompatibilityError(compatibility, I18n, false)}/>)}
|
|
54
46
|
</TouchableOpacity>);
|
|
55
47
|
};
|
|
48
|
+
const TILE_RADIUS = 12;
|
|
56
49
|
const styles = StyleSheet.create({
|
|
57
|
-
|
|
50
|
+
row: {
|
|
58
51
|
flexDirection: 'row',
|
|
59
|
-
|
|
52
|
+
alignItems: 'center',
|
|
53
|
+
marginHorizontal: 8,
|
|
54
|
+
paddingVertical: 5,
|
|
55
|
+
paddingHorizontal: 5,
|
|
56
|
+
borderRadius: TILE_RADIUS,
|
|
57
|
+
overflow: 'hidden',
|
|
60
58
|
},
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
width: '100%',
|
|
64
|
-
},
|
|
65
|
-
menuItemActive: {
|
|
66
|
-
width: 7,
|
|
67
|
-
height: 32,
|
|
68
|
-
borderTopRightRadius: 8,
|
|
69
|
-
borderBottomRightRadius: 8,
|
|
70
|
-
},
|
|
71
|
-
menuItemIcon: {
|
|
72
|
-
marginLeft: 12,
|
|
73
|
-
marginRight: 18,
|
|
59
|
+
iconTile: {
|
|
60
|
+
marginRight: 8,
|
|
74
61
|
},
|
|
75
|
-
|
|
62
|
+
menuItemTitle: {
|
|
76
63
|
flex: 1,
|
|
77
64
|
alignSelf: 'center',
|
|
78
|
-
paddingRight:
|
|
79
|
-
},
|
|
80
|
-
menuItemTitle: {
|
|
81
|
-
fontSize: 16,
|
|
65
|
+
paddingRight: 8,
|
|
82
66
|
fontWeight: 'bold',
|
|
83
67
|
},
|
|
84
68
|
dropdownIcon: {
|
|
85
69
|
marginHorizontal: 5,
|
|
86
|
-
marginRight:
|
|
70
|
+
marginRight: 5,
|
|
87
71
|
},
|
|
88
72
|
compatibilityError: {
|
|
89
73
|
marginVertical: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItemEntry.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/MenuItemEntry.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAChE,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuItemEntry.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/MenuItemEntry.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ import { CommonActions, DrawerActions } from '@react-navigation/native';
|
|
|
20
20
|
import { findIndexAndRouteOfMenu, hasSubMenus, } from '../../helpers';
|
|
21
21
|
import MenuItem from './MenuItem';
|
|
22
22
|
const MenuItemList = ({ state, navigation, activeModule, onItemClick, disabled, }) => {
|
|
23
|
-
const generateSubRoutes = menuItem => {
|
|
23
|
+
const generateSubRoutes = (menuItem) => {
|
|
24
24
|
if (hasSubMenus(menuItem)) {
|
|
25
25
|
const { subMenus } = menuItem;
|
|
26
26
|
return state.routes.filter(subRoute => subRoute.name in subMenus);
|
|
@@ -29,23 +29,22 @@ const MenuItemList = ({ state, navigation, activeModule, onItemClick, disabled,
|
|
|
29
29
|
};
|
|
30
30
|
const moduleEntries = useMemo(() => {
|
|
31
31
|
return state.routes
|
|
32
|
-
.filter(_route => activeModule.menus[_route.name] != null)
|
|
32
|
+
.filter(_route => activeModule.menus?.[_route.name] != null)
|
|
33
33
|
.map(route => ({ ...activeModule.menus[route.name], key: route.name }))
|
|
34
34
|
.map((item, index) => {
|
|
35
|
-
if (item.order != null)
|
|
35
|
+
if (item.order != null)
|
|
36
36
|
return item;
|
|
37
|
-
}
|
|
38
37
|
return { ...item, order: index * 10 };
|
|
39
38
|
})
|
|
40
39
|
.sort((a, b) => a.order - b.order);
|
|
41
40
|
}, [activeModule, state.routes]);
|
|
42
41
|
return moduleEntries.map(menuItem => {
|
|
43
42
|
const { route, index: i } = findIndexAndRouteOfMenu(state.routes, menuItem.key);
|
|
44
|
-
const focused = i === state.index &&
|
|
43
|
+
const focused = i === state.index &&
|
|
44
|
+
Object.keys(activeModule?.menus ?? {}).includes(route.name);
|
|
45
45
|
const onPress = (_route) => {
|
|
46
|
-
if (_route == null)
|
|
46
|
+
if (_route == null)
|
|
47
47
|
return null;
|
|
48
|
-
}
|
|
49
48
|
onItemClick();
|
|
50
49
|
const event = navigation.emit({
|
|
51
50
|
type: 'drawerItemPress',
|
|
@@ -53,10 +52,14 @@ const MenuItemList = ({ state, navigation, activeModule, onItemClick, disabled,
|
|
|
53
52
|
canPreventDefault: true,
|
|
54
53
|
});
|
|
55
54
|
if (!event.defaultPrevented) {
|
|
55
|
+
if (!focused) {
|
|
56
|
+
navigation.dispatch({
|
|
57
|
+
...CommonActions.navigate(_route.name, undefined, { merge: true }),
|
|
58
|
+
target: state.key,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
56
61
|
navigation.dispatch({
|
|
57
|
-
...(
|
|
58
|
-
? DrawerActions.closeDrawer()
|
|
59
|
-
: CommonActions.navigate({ name: _route.name, merge: true })),
|
|
62
|
+
...DrawerActions.closeDrawer(),
|
|
60
63
|
target: state.key,
|
|
61
64
|
});
|
|
62
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItemList.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/MenuItemList.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAEL,uBAAuB,EACvB,WAAW,GAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,QAAQ,MAAM,YAAY,CAAC;AAUlC,MAAM,YAAY,GAAG,CAAC,EACpB,KAAK,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"MenuItemList.js","sourceRoot":"","sources":["../../../../src/navigator/components/menu/MenuItemList.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAEL,uBAAuB,EACvB,WAAW,GAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,QAAQ,MAAM,YAAY,CAAC;AAUlC,MAAM,YAAY,GAAG,CAAC,EACpB,KAAK,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,iBAAiB,GAAG,CAAC,QAAa,EAAE,EAAE;QAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,EAAC,QAAQ,EAAC,GAAG,QAAQ,CAAC;YAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,KAAK,CAAC,MAAM;aAChB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;aAC3D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,YAAY,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC;aACrE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACnB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YAEpC,OAAO,EAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAC,CAAC;QACtC,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAM,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjC,OAAO,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QAClC,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAC,GAAG,uBAAuB,CAC/C,KAAK,CAAC,MAAM,EACZ,QAAQ,CAAC,GAAG,CACb,CAAC;QAEF,MAAM,OAAO,GACX,CAAC,KAAK,KAAK,CAAC,KAAK;YACjB,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG,CAAC,MAAa,EAAE,EAAE;YAChC,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YAEhC,WAAW,EAAE,CAAC;YAEd,MAAM,KAAK,GAAQ,UAAU,CAAC,IAAI,CAAC;gBACjC,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,MAAM,CAAC,GAAG;gBAClB,iBAAiB,EAAE,IAAI;aACjB,CAAC,CAAC;YAEV,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,UAAU,CAAC,QAAQ,CAAC;wBAClB,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;wBAChE,MAAM,EAAE,KAAK,CAAC,GAAG;qBAClB,CAAC,CAAC;gBACL,CAAC;gBAED,UAAU,CAAC,QAAQ,CAAC;oBAClB,GAAG,aAAa,CAAC,WAAW,EAAE;oBAC9B,MAAM,EAAE,KAAK,CAAC,GAAG;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAE9C,OAAO,CACL,CAAC,QAAQ,CACP,GAAG,CAAC,CAAC,KAAM,CAAC,GAAG,CAAC,CAChB,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,KAAK,CAAC,CAAC,KAAM,CAAC,CACd,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,OAAO,CAAC,CAClB,QAAQ,CAAC,CAAC,QAAQ,CAAC,EACnB,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|