@applica-software-guru/react-admin 1.3.177 → 1.3.179
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/dist/components/Layout/Navigation/Navigation.d.ts.map +1 -1
- package/dist/contexts/MenuConfigContext.d.ts +3 -7
- package/dist/contexts/MenuConfigContext.d.ts.map +1 -1
- package/dist/react-admin.cjs.js +35 -35
- package/dist/react-admin.cjs.js.map +1 -1
- package/dist/react-admin.es.js +824 -864
- package/dist/react-admin.es.js.map +1 -1
- package/dist/react-admin.umd.js +53 -53
- package/dist/react-admin.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Layout/Navigation/Navigation.tsx +0 -1
- package/src/components/ra-lists/List.tsx +1 -1
- package/src/contexts/MenuConfigContext.tsx +18 -68
- package/src/hooks/useMenu.jsx +6 -6
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MenuProps } from '../types';
|
|
2
|
-
import { createContext } from 'react';
|
|
2
|
+
import { createContext, useEffect } from 'react';
|
|
3
3
|
import { useLocalStorage } from '../hooks';
|
|
4
4
|
|
|
5
5
|
export type MenuConfigContextProps = {
|
|
@@ -7,17 +7,13 @@ export type MenuConfigContextProps = {
|
|
|
7
7
|
openComponent: string;
|
|
8
8
|
selectedID: string | null;
|
|
9
9
|
drawerOpen: boolean;
|
|
10
|
-
componentDrawerOpen: boolean;
|
|
11
|
-
menuDashboard: any;
|
|
12
10
|
error: any;
|
|
13
|
-
|
|
11
|
+
menu: MenuProps;
|
|
14
12
|
activeItem: (openItem: string[]) => void;
|
|
15
|
-
activeComponent: (openComponent: string) => void;
|
|
16
13
|
openDrawer: (drawerOpen: boolean) => void;
|
|
17
|
-
openComponentDrawer: (componentDrawerOpen: boolean) => void;
|
|
18
14
|
activeID: (selectedID: string | null) => void;
|
|
19
|
-
getMenuSuccess: (menuDashboard: any) => void;
|
|
20
15
|
hasError: (error: any) => void;
|
|
16
|
+
setMenu: (menu: MenuProps) => void;
|
|
21
17
|
};
|
|
22
18
|
const notImplemented = () => {
|
|
23
19
|
throw new Error('Not implemented');
|
|
@@ -27,17 +23,13 @@ const initialState: MenuConfigContextProps = {
|
|
|
27
23
|
openComponent: 'buttons',
|
|
28
24
|
selectedID: null,
|
|
29
25
|
drawerOpen: false,
|
|
30
|
-
componentDrawerOpen: true,
|
|
31
|
-
menuDashboard: {},
|
|
32
26
|
error: null,
|
|
33
|
-
|
|
27
|
+
menu: [],
|
|
34
28
|
activeItem: notImplemented,
|
|
35
|
-
activeComponent: notImplemented,
|
|
36
29
|
openDrawer: notImplemented,
|
|
37
|
-
openComponentDrawer: notImplemented,
|
|
38
30
|
activeID: notImplemented,
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
hasError: notImplemented,
|
|
32
|
+
setMenu: notImplemented
|
|
41
33
|
};
|
|
42
34
|
|
|
43
35
|
const MenuConfigContext = createContext<MenuConfigContextProps>(initialState);
|
|
@@ -47,69 +39,27 @@ export type MenuConfigProviderProps = {
|
|
|
47
39
|
children: React.ReactNode;
|
|
48
40
|
};
|
|
49
41
|
|
|
50
|
-
const MenuConfigProvider = ({ menu
|
|
51
|
-
const [
|
|
52
|
-
|
|
53
|
-
const activeItem = (openItem: string) => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}));
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
const activeID = (selectedID: string) => {
|
|
61
|
-
setMenu((menu: MenuConfigContextProps) => ({
|
|
62
|
-
...menu,
|
|
63
|
-
selectedID
|
|
64
|
-
}));
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
const activeComponent = (openComponent: string) => {
|
|
68
|
-
setMenu((menu: MenuConfigContextProps) => ({
|
|
69
|
-
...menu,
|
|
70
|
-
openComponent
|
|
71
|
-
}));
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const openDrawer = (drawerOpen: boolean) => {
|
|
75
|
-
setMenu((menu: MenuConfigContextProps) => ({
|
|
76
|
-
...menu,
|
|
77
|
-
drawerOpen
|
|
78
|
-
}));
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
const openComponentDrawer = (componentDrawerOpen: boolean) => {
|
|
82
|
-
setMenu((menu: MenuConfigContextProps) => ({
|
|
83
|
-
...menu,
|
|
84
|
-
componentDrawerOpen
|
|
85
|
-
}));
|
|
86
|
-
};
|
|
42
|
+
const MenuConfigProvider = ({ menu, children }: MenuConfigProviderProps) => {
|
|
43
|
+
const [menuConfig, setMenuConfig] = useLocalStorage('menu-config', { ...initialState, menu }) as any;
|
|
44
|
+
const setMenu = (menu: MenuProps) => setMenuConfig((menuConfig: MenuConfigContextProps) => ({ ...menuConfig, menu }));
|
|
45
|
+
const activeItem = (openItem: string) => setMenuConfig((menuConfig: MenuConfigContextProps) => ({ ...menuConfig, openItem }));
|
|
46
|
+
const activeID = (selectedID: string) => setMenuConfig((menuConfig: MenuConfigContextProps) => ({ ...menuConfig, selectedID }));
|
|
47
|
+
const openDrawer = (drawerOpen: boolean) => setMenuConfig((menuConfig: MenuConfigContextProps) => ({ ...menuConfig, drawerOpen }));
|
|
48
|
+
const hasError = (error: any) => setMenuConfig((menuConfig: MenuConfigContextProps) => ({ ...menuConfig, error }));
|
|
87
49
|
|
|
88
|
-
|
|
89
|
-
setMenu(
|
|
90
|
-
|
|
91
|
-
menuDashboard
|
|
92
|
-
}));
|
|
93
|
-
};
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
setMenu(menu);
|
|
52
|
+
}, [menu]);
|
|
94
53
|
|
|
95
|
-
const hasError = (error: any) => {
|
|
96
|
-
setMenu((menu: MenuConfigContextProps) => ({
|
|
97
|
-
...menu,
|
|
98
|
-
error
|
|
99
|
-
}));
|
|
100
|
-
};
|
|
101
54
|
return (
|
|
102
55
|
<MenuConfigContext.Provider
|
|
103
56
|
value={{
|
|
104
57
|
// @ts-ignore
|
|
105
|
-
...
|
|
106
|
-
|
|
58
|
+
...menuConfig,
|
|
59
|
+
setMenu,
|
|
107
60
|
activeItem,
|
|
108
|
-
activeComponent,
|
|
109
61
|
openDrawer,
|
|
110
|
-
openComponentDrawer,
|
|
111
62
|
activeID,
|
|
112
|
-
getMenuSuccess,
|
|
113
63
|
hasError
|
|
114
64
|
}}
|
|
115
65
|
>
|
package/src/hooks/useMenu.jsx
CHANGED
|
@@ -96,7 +96,7 @@ const mapParent = (group) => {
|
|
|
96
96
|
return group;
|
|
97
97
|
};
|
|
98
98
|
|
|
99
|
-
const createNodes = ({
|
|
99
|
+
const createNodes = ({ userMenu, resources, permissions, translate, roles }) => {
|
|
100
100
|
const translateRecursive = (group) => {
|
|
101
101
|
group.title = translate(group.title, { _: group.title });
|
|
102
102
|
|
|
@@ -126,7 +126,7 @@ const createNodes = ({ userGroups, resources, permissions, translate, roles }) =
|
|
|
126
126
|
return group;
|
|
127
127
|
};
|
|
128
128
|
|
|
129
|
-
const groupsA = cloneDeep(
|
|
129
|
+
const groupsA = cloneDeep(userMenu)
|
|
130
130
|
.map((group) => ({
|
|
131
131
|
type: 'group',
|
|
132
132
|
icon: AntDesignOutlined,
|
|
@@ -142,7 +142,7 @@ const createNodes = ({ userGroups, resources, permissions, translate, roles }) =
|
|
|
142
142
|
// Generate unique list of groups (because a resource can be configured with the same group of another resource)
|
|
143
143
|
.filter((group, index, self) => self.indexOf(group) === index)
|
|
144
144
|
// Remove from the list groups already defined by the user (Applica developer)
|
|
145
|
-
.filter((group) => group !== undefined && getGroupById(
|
|
145
|
+
.filter((group) => group !== undefined && getGroupById(userMenu, group) === null)
|
|
146
146
|
.map((group) => ({
|
|
147
147
|
id: group,
|
|
148
148
|
title: translate(`ra.menu.group.${group}`),
|
|
@@ -187,7 +187,7 @@ const useMenu = () => {
|
|
|
187
187
|
const isAuthenticated = identity && identity.id > 0;
|
|
188
188
|
|
|
189
189
|
const { isLoading: loadingPermissions, permissions } = usePermissions(isAuthenticated);
|
|
190
|
-
const {
|
|
190
|
+
const { menu: userMenu } = useMenuConfig();
|
|
191
191
|
const translate = useTranslate();
|
|
192
192
|
const menu = useMemo(() => {
|
|
193
193
|
if (loadingIdentity || !identity || identity === null || identity?.id <= 0) {
|
|
@@ -198,11 +198,11 @@ const useMenu = () => {
|
|
|
198
198
|
resources,
|
|
199
199
|
permissions,
|
|
200
200
|
translate,
|
|
201
|
-
|
|
201
|
+
userMenu,
|
|
202
202
|
roles
|
|
203
203
|
});
|
|
204
204
|
return groups;
|
|
205
|
-
}, [loadingIdentity, loadingPermissions, identity, resources, permissions, translate,
|
|
205
|
+
}, [loadingIdentity, loadingPermissions, identity, resources, permissions, translate, userMenu]);
|
|
206
206
|
|
|
207
207
|
const isLoading = useMemo(() => loadingIdentity, [loadingIdentity]);
|
|
208
208
|
|