@applica-software-guru/react-admin 1.0.41 → 1.0.43
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/bitbucket-pipelines.yml +2 -0
- package/dist/ApplicaAdmin.d.ts.map +1 -1
- package/dist/components/@extended/AnimateButton.d.ts +1 -1
- package/dist/components/@extended/AnimateButton.d.ts.map +1 -1
- package/dist/components/@extended/Avatar.d.ts.map +1 -1
- package/dist/components/@extended/Breadcrumbs.d.ts.map +1 -1
- package/dist/components/@extended/IconButton.d.ts.map +1 -1
- package/dist/components/@extended/LoadingButton.d.ts.map +1 -1
- package/dist/components/@extended/Tooltip.d.ts.map +1 -1
- package/dist/components/@extended/Transitions.d.ts.map +1 -1
- package/dist/components/@extended/progress/CircularWithLabel.d.ts.map +1 -1
- package/dist/components/@extended/progress/CircularWithPath.d.ts.map +1 -1
- package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.d.ts +1 -1
- package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.d.ts.map +1 -1
- package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavGroup.d.ts.map +1 -1
- package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavItem.d.ts.map +1 -1
- package/dist/components/Layout/Drawer/DrawerHeader/DrawerHeaderStyled.d.ts.map +1 -1
- package/dist/components/Layout/Drawer/DrawerHeader/index.d.ts.map +1 -1
- package/dist/components/Layout/Drawer/MiniDrawerStyled.d.ts.map +1 -1
- package/dist/components/Layout/Drawer/index.d.ts.map +1 -1
- package/dist/components/Layout/Footer.d.ts.map +1 -1
- package/dist/components/Layout/Header/AppBarStyled.d.ts.map +1 -1
- package/dist/components/Layout/Header/HeaderContent/Notification.d.ts.map +1 -1
- package/dist/components/Layout/Header/HeaderContent/NotificationItem.d.ts.map +1 -1
- package/dist/components/Layout/Header/HeaderContent/Profile.d.ts.map +1 -1
- package/dist/components/Layout/Header/HeaderContent/index.d.ts.map +1 -1
- package/dist/components/Layout/Header/index.d.ts.map +1 -1
- package/dist/components/Layout/index.d.ts.map +1 -1
- package/dist/components/MenuPopover/styles.d.ts.map +1 -1
- package/dist/components/Notification.d.ts.map +1 -1
- package/dist/components/ScrollX.d.ts.map +1 -1
- package/dist/components/ra-buttons/EditInDialogButton.d.ts.map +1 -1
- package/dist/components/ra-fields/CoverField.d.ts.map +1 -1
- package/dist/components/ra-fields/DateAgoField.d.ts.map +1 -1
- package/dist/components/ra-fields/ReadonlyField.d.ts.map +1 -1
- package/dist/components/ra-forms/CardForm.d.ts.map +1 -1
- package/dist/components/ra-forms/LongForm/useFormRootPath.d.ts.map +1 -1
- package/dist/components/ra-forms/TabbedForm.d.ts.map +1 -1
- package/dist/components/ra-inputs/ReferenceManyInput.d.ts.map +1 -1
- package/dist/components/ra-lists/Empty.d.ts.map +1 -1
- package/dist/components/ra-lists/NotificationList/NotificationList.d.ts.map +1 -1
- package/dist/components/ra-lists/NotificationList/button/MarkAsReadedButton.d.ts.map +1 -1
- package/dist/components/ra-lists/NotificationList/field/NotificationField.d.ts.map +1 -1
- package/dist/contexts/MenuConfigContext.d.ts.map +1 -1
- package/dist/contexts/MenuPropTypes.d.ts.map +1 -1
- package/dist/dev/useCliErrorCatcher.d.ts +1 -1
- package/dist/hooks/useMenu.d.ts.map +1 -1
- package/dist/i18n/useI18nCatcher.d.ts +1 -1
- package/dist/i18n/useI18nLanguages.d.ts +1 -1
- package/dist/i18n/useI18nLanguages.d.ts.map +1 -1
- package/dist/i18n/useI18nProvider.d.ts.map +1 -1
- package/dist/react-admin.cjs.js +2 -1
- package/dist/react-admin.cjs.js.map +1 -0
- package/dist/react-admin.es.js +300 -784
- package/dist/react-admin.es.js.map +1 -0
- package/dist/react-admin.umd.js +2 -1
- package/dist/react-admin.umd.js.map +1 -0
- package/dist/themes/overrides/OutlinedInput.d.ts.map +1 -1
- package/dist/themes/palette.d.ts.map +1 -1
- package/dist/themes/theme/theme1.d.ts.map +1 -1
- package/dist/themes/theme/theme2.d.ts.map +1 -1
- package/dist/themes/theme/theme3.d.ts.map +1 -1
- package/dist/themes/theme/theme4.d.ts.map +1 -1
- package/dist/themes/theme/theme5.d.ts.map +1 -1
- package/dist/themes/theme/theme6.d.ts.map +1 -1
- package/dist/themes/theme/theme7.d.ts.map +1 -1
- package/dist/themes/theme/theme8.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/lang.d.ts +1 -1
- package/dist/utils/lang.d.ts.map +1 -1
- package/dist/utils/time.d.ts +2 -1
- package/dist/utils/time.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/Admin.jsx +8 -8
- package/src/AdminContext.jsx +9 -9
- package/src/ApplicaAdmin.jsx +30 -35
- package/src/components/@extended/AnimateButton.jsx +25 -33
- package/src/components/@extended/Avatar.jsx +35 -42
- package/src/components/@extended/Breadcrumbs.jsx +62 -96
- package/src/components/@extended/Dot.jsx +14 -14
- package/src/components/@extended/IconButton.jsx +55 -65
- package/src/components/@extended/LoadingButton.jsx +84 -86
- package/src/components/@extended/Tooltip.jsx +24 -27
- package/src/components/@extended/Transitions.jsx +98 -107
- package/src/components/@extended/index.jsx +10 -10
- package/src/components/@extended/progress/CircularWithLabel.jsx +7 -9
- package/src/components/@extended/progress/CircularWithPath.jsx +9 -18
- package/src/components/@extended/progress/LinearWithIcon.jsx +5 -5
- package/src/components/@extended/progress/LinearWithLabel.jsx +5 -5
- package/src/components/@extended/progress/index.jsx +5 -5
- package/src/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.jsx +112 -131
- package/src/components/Layout/Drawer/DrawerContent/Navigation/NavGroup.jsx +67 -88
- package/src/components/Layout/Drawer/DrawerContent/Navigation/NavItem.jsx +63 -79
- package/src/components/Layout/Drawer/DrawerContent/Navigation/index.jsx +28 -28
- package/src/components/Layout/Drawer/DrawerContent/index.jsx +7 -7
- package/src/components/Layout/Drawer/DrawerHeader/DrawerHeaderStyled.jsx +13 -15
- package/src/components/Layout/Drawer/DrawerHeader/index.jsx +17 -22
- package/src/components/Layout/Drawer/HorizontalBar.jsx +17 -17
- package/src/components/Layout/Drawer/MiniDrawerStyled.jsx +27 -29
- package/src/components/Layout/Drawer/index.jsx +21 -24
- package/src/components/Layout/Footer.jsx +7 -12
- package/src/components/Layout/Header/AppBarStyled.jsx +26 -28
- package/src/components/Layout/Header/HeaderContent/MobileSection.jsx +27 -27
- package/src/components/Layout/Header/HeaderContent/Notification.jsx +34 -55
- package/src/components/Layout/Header/HeaderContent/NotificationItem.jsx +24 -36
- package/src/components/Layout/Header/HeaderContent/Profile.jsx +48 -73
- package/src/components/Layout/Header/HeaderContent/index.jsx +16 -18
- package/src/components/Layout/Header/index.jsx +25 -43
- package/src/components/Layout/index.jsx +36 -52
- package/src/components/Loadable.jsx +4 -4
- package/src/components/Loader.jsx +7 -7
- package/src/components/Logo.jsx +14 -14
- package/src/components/MainIcon.jsx +6 -6
- package/src/components/MenuPopover/MenuPopover.jsx +15 -15
- package/src/components/MenuPopover/getPosition.jsx +40 -40
- package/src/components/MenuPopover/index.jsx +3 -3
- package/src/components/MenuPopover/styles.jsx +20 -20
- package/src/components/Notification.jsx +7 -7
- package/src/components/ScrollTop.jsx +13 -13
- package/src/components/ScrollX.jsx +4 -4
- package/src/components/SmallIcon.jsx +6 -6
- package/src/components/ra-buttons/EditInDialogButton.jsx +39 -45
- package/src/components/ra-buttons/ImpersonateUserButton.jsx +20 -20
- package/src/components/ra-buttons/index.jsx +4 -4
- package/src/components/ra-fields/ActionsField.jsx +12 -12
- package/src/components/ra-fields/CoverField.jsx +20 -26
- package/src/components/ra-fields/DateAgoField.jsx +17 -20
- package/src/components/ra-fields/DateField.jsx +14 -14
- package/src/components/ra-fields/EmailField.jsx +14 -14
- package/src/components/ra-fields/FileField.jsx +23 -23
- package/src/components/ra-fields/FunctionField.jsx +5 -5
- package/src/components/ra-fields/ImageField.jsx +11 -11
- package/src/components/ra-fields/ReadonlyField.jsx +40 -42
- package/src/components/ra-fields/ReferenceManyField.jsx +21 -21
- package/src/components/ra-fields/SizeField.jsx +15 -15
- package/src/components/ra-fields/TextField.jsx +14 -14
- package/src/components/ra-fields/index.jsx +15 -15
- package/src/components/ra-forms/CardForm.jsx +34 -40
- package/src/components/ra-forms/LongForm/useFormRootPath.ts +8 -13
- package/src/components/ra-forms/TabbedForm.jsx +10 -10
- package/src/components/ra-forms/Toolbar.jsx +15 -15
- package/src/components/ra-forms/index.jsx +9 -9
- package/src/components/ra-inputs/AutocompleteArrayInput.jsx +7 -7
- package/src/components/ra-inputs/AutocompleteInput.jsx +9 -9
- package/src/components/ra-inputs/BooleanInput.jsx +19 -19
- package/src/components/ra-inputs/DateInput.jsx +13 -13
- package/src/components/ra-inputs/FileInput.jsx +33 -33
- package/src/components/ra-inputs/ImageInput.jsx +19 -19
- package/src/components/ra-inputs/NumberInput.jsx +13 -13
- package/src/components/ra-inputs/RecordInput.jsx +39 -39
- package/src/components/ra-inputs/ReferenceArrayInput.jsx +10 -10
- package/src/components/ra-inputs/ReferenceInput.jsx +10 -10
- package/src/components/ra-inputs/ReferenceManyInput.jsx +13 -24
- package/src/components/ra-inputs/SearchInput.jsx +6 -6
- package/src/components/ra-inputs/SelectArrayInput.jsx +19 -19
- package/src/components/ra-inputs/TimeInput.jsx +21 -21
- package/src/components/ra-lists/Empty.jsx +32 -37
- package/src/components/ra-lists/List.jsx +9 -9
- package/src/components/ra-lists/NotificationList/NotificationList.jsx +14 -16
- package/src/components/ra-lists/NotificationList/button/MarkAsReadedButton.jsx +21 -25
- package/src/components/ra-lists/NotificationList/button/MarkAsUnreadedButton.jsx +19 -19
- package/src/components/ra-lists/NotificationList/button/index.jsx +2 -2
- package/src/components/ra-lists/NotificationList/field/NotificationField.jsx +20 -31
- package/src/components/ra-lists/NotificationList/field/index.jsx +1 -1
- package/src/components/ra-lists/NotificationList/index.jsx +2 -2
- package/src/components/ra-lists/index.jsx +5 -5
- package/src/components/third-party/SimpleBar.jsx +10 -10
- package/src/components/third-party/index.jsx +2 -2
- package/src/contexts/MenuConfigContext.jsx +35 -35
- package/src/contexts/MenuPropTypes.jsx +7 -7
- package/src/contexts/index.jsx +5 -5
- package/src/dev/index.jsx +2 -2
- package/src/dev/useCliErrorCatcher.jsx +32 -32
- package/src/hooks/index.jsx +8 -16
- package/src/hooks/useAppConfig.jsx +4 -4
- package/src/hooks/useBreadcrumbs.jsx +37 -37
- package/src/hooks/useLocalStorage.jsx +16 -16
- package/src/hooks/useMenu.jsx +83 -88
- package/src/hooks/useMenuConfig.jsx +4 -4
- package/src/hooks/useResourceTitle.jsx +13 -13
- package/src/hooks/useThemeConfig.jsx +4 -4
- package/src/i18n/createI18nProvider.jsx +7 -7
- package/src/i18n/index.jsx +4 -4
- package/src/i18n/useI18nCatcher.jsx +26 -26
- package/src/i18n/useI18nLanguages.jsx +12 -16
- package/src/i18n/useI18nProvider.jsx +3 -4
- package/src/themes/getColors.jsx +8 -8
- package/src/themes/getShadow.jsx +17 -17
- package/src/themes/index.jsx +29 -29
- package/src/themes/overrides/Accordion.jsx +9 -9
- package/src/themes/overrides/AccordionDetails.jsx +5 -5
- package/src/themes/overrides/AccordionSummary.jsx +11 -11
- package/src/themes/overrides/Alert.jsx +21 -21
- package/src/themes/overrides/AlertTitle.jsx +5 -5
- package/src/themes/overrides/Autocomplete.jsx +9 -9
- package/src/themes/overrides/Badge.jsx +12 -12
- package/src/themes/overrides/Button.jsx +62 -62
- package/src/themes/overrides/ButtonBase.jsx +4 -4
- package/src/themes/overrides/ButtonGroup.jsx +4 -4
- package/src/themes/overrides/CardContent.jsx +6 -6
- package/src/themes/overrides/Checkbox.jsx +31 -31
- package/src/themes/overrides/Chip.jsx +22 -22
- package/src/themes/overrides/Dialog.jsx +7 -7
- package/src/themes/overrides/DialogContentText.jsx +5 -5
- package/src/themes/overrides/DialogTitle.jsx +5 -5
- package/src/themes/overrides/Fab.jsx +21 -21
- package/src/themes/overrides/IconButton.jsx +8 -8
- package/src/themes/overrides/InputBase.jsx +3 -3
- package/src/themes/overrides/InputLabel.jsx +8 -8
- package/src/themes/overrides/LinearProgress.jsx +6 -6
- package/src/themes/overrides/Link.jsx +4 -4
- package/src/themes/overrides/ListItemButton.jsx +7 -7
- package/src/themes/overrides/ListItemIcon.jsx +5 -5
- package/src/themes/overrides/LoadingButton.jsx +6 -6
- package/src/themes/overrides/OutlinedInput.jsx +20 -21
- package/src/themes/overrides/Pagination.jsx +4 -4
- package/src/themes/overrides/PaginationItem.jsx +55 -55
- package/src/themes/overrides/Popover.jsx +5 -5
- package/src/themes/overrides/Radio.jsx +30 -30
- package/src/themes/overrides/Slider.jsx +20 -20
- package/src/themes/overrides/Switch.jsx +26 -26
- package/src/themes/overrides/Tab.jsx +7 -7
- package/src/themes/overrides/TableBody.jsx +11 -11
- package/src/themes/overrides/TableCell.jsx +12 -12
- package/src/themes/overrides/TableFooter.jsx +5 -5
- package/src/themes/overrides/TableHead.jsx +5 -5
- package/src/themes/overrides/TablePagination.jsx +6 -6
- package/src/themes/overrides/TableRow.jsx +10 -10
- package/src/themes/overrides/Tabs.jsx +5 -5
- package/src/themes/overrides/ToggleButton.jsx +7 -7
- package/src/themes/overrides/Tooltip.jsx +5 -5
- package/src/themes/overrides/TreeItem.jsx +7 -7
- package/src/themes/overrides/Typography.jsx +5 -5
- package/src/themes/overrides/index.jsx +47 -47
- package/src/themes/palette.jsx +22 -34
- package/src/themes/shadows.jsx +4 -4
- package/src/themes/theme/default.jsx +17 -17
- package/src/themes/theme/index.jsx +23 -23
- package/src/themes/theme/theme1.jsx +24 -46
- package/src/themes/theme/theme2.jsx +24 -46
- package/src/themes/theme/theme3.jsx +24 -46
- package/src/themes/theme/theme4.jsx +24 -46
- package/src/themes/theme/theme5.jsx +24 -46
- package/src/themes/theme/theme6.jsx +24 -46
- package/src/themes/theme/theme7.jsx +24 -46
- package/src/themes/theme/theme8.jsx +24 -46
- package/src/themes/typography.jsx +16 -16
- package/src/utils/{lang.js → lang.ts} +4 -4
- package/src/utils/time.ts +14 -0
- package/vite.config.js +11 -10
- package/src/utils/time.js +0 -13
- /package/src/utils/{index.js → index.ts} +0 -0
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
ListItemAvatar,
|
|
5
|
-
ListItemButton,
|
|
6
|
-
ListItemSecondaryAction,
|
|
7
|
-
ListItemText,
|
|
8
|
-
Typography
|
|
9
|
-
} from '@mui/material'
|
|
10
|
-
import { useCallback, useMemo } from 'react'
|
|
11
|
-
import { useLocaleState, useNotify, useRedirect, useUpdate } from 'react-admin'
|
|
1
|
+
import { Avatar, Divider, ListItemAvatar, ListItemButton, ListItemSecondaryAction, ListItemText, Typography } from '@mui/material';
|
|
2
|
+
import { useCallback, useMemo } from 'react';
|
|
3
|
+
import { useLocaleState, useNotify, useRedirect, useUpdate } from 'react-admin';
|
|
12
4
|
|
|
13
|
-
import { MessageOutlined } from '@ant-design/icons'
|
|
14
|
-
import PropTypes from 'prop-types'
|
|
15
|
-
import dayjs from 'dayjs'
|
|
5
|
+
import { MessageOutlined } from '@ant-design/icons';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import dayjs from 'dayjs';
|
|
16
8
|
|
|
17
9
|
const NotificationItem = ({ resource, selected, notification, onClick }) => {
|
|
18
|
-
const notify = useNotify()
|
|
19
|
-
const redirect = useRedirect()
|
|
10
|
+
const notify = useNotify();
|
|
11
|
+
const redirect = useRedirect();
|
|
20
12
|
const [update] = useUpdate(
|
|
21
13
|
resource,
|
|
22
14
|
{
|
|
@@ -30,26 +22,23 @@ const NotificationItem = ({ resource, selected, notification, onClick }) => {
|
|
|
30
22
|
onSuccess: () => {
|
|
31
23
|
if (notification?.resource) {
|
|
32
24
|
if (notification?.resource.startsWith('/')) {
|
|
33
|
-
redirect(notification?.resource)
|
|
34
|
-
onClick()
|
|
25
|
+
redirect(notification?.resource);
|
|
26
|
+
onClick();
|
|
35
27
|
} else {
|
|
36
|
-
document.location.href = notification?.resource
|
|
28
|
+
document.location.href = notification?.resource;
|
|
37
29
|
}
|
|
38
30
|
} else {
|
|
39
|
-
onClick()
|
|
31
|
+
onClick();
|
|
40
32
|
}
|
|
41
33
|
},
|
|
42
34
|
onFailure: () => {
|
|
43
|
-
notify('resources.notifications.messages.readed.error', 'warning')
|
|
35
|
+
notify('resources.notifications.messages.readed.error', 'warning');
|
|
44
36
|
}
|
|
45
37
|
}
|
|
46
|
-
)
|
|
47
|
-
const handleClick = useCallback(() => update(), [update])
|
|
48
|
-
const [locale] = useLocaleState()
|
|
49
|
-
const ago = useMemo(
|
|
50
|
-
() => dayjs(notification.created).locale(locale).fromNow(),
|
|
51
|
-
[notification, locale]
|
|
52
|
-
)
|
|
38
|
+
);
|
|
39
|
+
const handleClick = useCallback(() => update(), [update]);
|
|
40
|
+
const [locale] = useLocaleState();
|
|
41
|
+
const ago = useMemo(() => dayjs(notification.created).locale(locale).fromNow(), [notification, locale]);
|
|
53
42
|
return (
|
|
54
43
|
<>
|
|
55
44
|
<ListItemButton selected={selected} onClick={handleClick}>
|
|
@@ -82,15 +71,15 @@ const NotificationItem = ({ resource, selected, notification, onClick }) => {
|
|
|
82
71
|
</ListItemButton>
|
|
83
72
|
<Divider />
|
|
84
73
|
</>
|
|
85
|
-
)
|
|
86
|
-
}
|
|
74
|
+
);
|
|
75
|
+
};
|
|
87
76
|
|
|
88
|
-
NotificationItem.displayName = 'NotificationItem'
|
|
77
|
+
NotificationItem.displayName = 'NotificationItem';
|
|
89
78
|
|
|
90
79
|
NotificationItem.defaultProps = {
|
|
91
80
|
resource: 'entities/notification',
|
|
92
81
|
selected: false
|
|
93
|
-
}
|
|
82
|
+
};
|
|
94
83
|
|
|
95
84
|
NotificationItem.propTypes = {
|
|
96
85
|
resource: PropTypes.string.isRequired,
|
|
@@ -101,9 +90,8 @@ NotificationItem.propTypes = {
|
|
|
101
90
|
content: PropTypes.string.isRequired,
|
|
102
91
|
resource: PropTypes.string,
|
|
103
92
|
readed: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.instanceOf(Date)]),
|
|
104
|
-
created: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.instanceOf(Date)])
|
|
105
|
-
.isRequired
|
|
93
|
+
created: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.instanceOf(Date)]).isRequired
|
|
106
94
|
}).isRequired,
|
|
107
95
|
onClick: PropTypes.func.isRequired
|
|
108
|
-
}
|
|
109
|
-
export default NotificationItem
|
|
96
|
+
};
|
|
97
|
+
export default NotificationItem;
|
|
@@ -1,83 +1,66 @@
|
|
|
1
|
-
import { Avatar, IconButton, Transitions } from '../../../@extended'
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
CardContent,
|
|
6
|
-
ClickAwayListener,
|
|
7
|
-
Grid,
|
|
8
|
-
Paper,
|
|
9
|
-
Popper,
|
|
10
|
-
Stack,
|
|
11
|
-
Tooltip,
|
|
12
|
-
Typography,
|
|
13
|
-
} from '@mui/material'
|
|
14
|
-
import { useAuthProvider, useDataProvider, useGetIdentity, useLogout } from 'react-admin'
|
|
15
|
-
import { useCallback, useEffect, useRef, useState } from 'react'
|
|
1
|
+
import { Avatar, IconButton, Transitions } from '../../../@extended';
|
|
2
|
+
import { Box, ButtonBase, CardContent, ClickAwayListener, Grid, Paper, Popper, Stack, Tooltip, Typography } from '@mui/material';
|
|
3
|
+
import { useAuthProvider, useDataProvider, useGetIdentity, useLogout } from 'react-admin';
|
|
4
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
16
5
|
|
|
17
|
-
import { LogoutOutlined } from '@ant-design/icons'
|
|
18
|
-
import MainCard from '../../../MainCard'
|
|
19
|
-
import PropTypes from 'prop-types'
|
|
20
|
-
import { useTheme } from '@mui/material/styles'
|
|
6
|
+
import { LogoutOutlined } from '@ant-design/icons';
|
|
7
|
+
import MainCard from '../../../MainCard';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import { useTheme } from '@mui/material/styles';
|
|
21
10
|
|
|
22
11
|
function TabPanel({ children, value, index, ...other }) {
|
|
23
12
|
return (
|
|
24
|
-
<div
|
|
25
|
-
role="tabpanel"
|
|
26
|
-
hidden={value !== index}
|
|
27
|
-
id={`profile-tabpanel-${index}`}
|
|
28
|
-
aria-labelledby={`profile-tab-${index}`}
|
|
29
|
-
{...other}
|
|
30
|
-
>
|
|
13
|
+
<div role="tabpanel" hidden={value !== index} id={`profile-tabpanel-${index}`} aria-labelledby={`profile-tab-${index}`} {...other}>
|
|
31
14
|
{value === index && children}
|
|
32
15
|
</div>
|
|
33
|
-
)
|
|
16
|
+
);
|
|
34
17
|
}
|
|
35
18
|
|
|
36
19
|
TabPanel.propTypes = {
|
|
37
20
|
children: PropTypes.node,
|
|
38
21
|
index: PropTypes.any.isRequired,
|
|
39
|
-
value: PropTypes.any.isRequired
|
|
40
|
-
}
|
|
22
|
+
value: PropTypes.any.isRequired
|
|
23
|
+
};
|
|
41
24
|
|
|
42
25
|
const Profile = () => {
|
|
43
|
-
const theme = useTheme()
|
|
26
|
+
const theme = useTheme();
|
|
44
27
|
|
|
45
|
-
const { identity } = useGetIdentity()
|
|
28
|
+
const { identity } = useGetIdentity();
|
|
46
29
|
|
|
47
|
-
const anchorRef = useRef(null)
|
|
48
|
-
const [open, setOpen] = useState(false)
|
|
30
|
+
const anchorRef = useRef(null);
|
|
31
|
+
const [open, setOpen] = useState(false);
|
|
49
32
|
const handleToggle = () => {
|
|
50
|
-
setOpen((prevOpen) => !prevOpen)
|
|
51
|
-
}
|
|
33
|
+
setOpen((prevOpen) => !prevOpen);
|
|
34
|
+
};
|
|
52
35
|
|
|
53
36
|
const handleClose = (event) => {
|
|
54
37
|
if (anchorRef.current && anchorRef.current.contains(event.target)) {
|
|
55
|
-
return
|
|
38
|
+
return;
|
|
56
39
|
}
|
|
57
|
-
setOpen(false)
|
|
58
|
-
}
|
|
40
|
+
setOpen(false);
|
|
41
|
+
};
|
|
59
42
|
|
|
60
|
-
const iconBackColorOpen = theme.palette.mode === 'dark' ? 'grey.200' : 'grey.300'
|
|
61
|
-
const isImpersonating = false // authProvider?.isImpersonating && authProvider?.isImpersonating() === true
|
|
62
|
-
const logout = useLogout()
|
|
43
|
+
const iconBackColorOpen = theme.palette.mode === 'dark' ? 'grey.200' : 'grey.300';
|
|
44
|
+
const isImpersonating = false; // authProvider?.isImpersonating && authProvider?.isImpersonating() === true
|
|
45
|
+
const logout = useLogout();
|
|
63
46
|
|
|
64
|
-
const dataProvider = useDataProvider()
|
|
65
|
-
const authProvider = useAuthProvider()
|
|
47
|
+
const dataProvider = useDataProvider();
|
|
48
|
+
const authProvider = useAuthProvider();
|
|
66
49
|
const handleLogout = useCallback(() => {
|
|
67
50
|
if (isImpersonating) {
|
|
68
|
-
authProvider.stopImpersonate().then(() => (document.location.href = '/'))
|
|
51
|
+
authProvider.stopImpersonate().then(() => (document.location.href = '/'));
|
|
69
52
|
} else {
|
|
70
|
-
logout()
|
|
53
|
+
logout();
|
|
71
54
|
}
|
|
72
|
-
}, [authProvider, isImpersonating, logout])
|
|
73
|
-
const [profileImage, setProfileImage] = useState(null)
|
|
55
|
+
}, [authProvider, isImpersonating, logout]);
|
|
56
|
+
const [profileImage, setProfileImage] = useState(null);
|
|
74
57
|
useEffect(() => {
|
|
75
58
|
async function fetchProfileImage() {
|
|
76
|
-
var image = await dataProvider.getFile('/profile/me/image')
|
|
77
|
-
setProfileImage(image)
|
|
59
|
+
var image = await dataProvider.getFile('/profile/me/image');
|
|
60
|
+
setProfileImage(image);
|
|
78
61
|
}
|
|
79
|
-
fetchProfileImage()
|
|
80
|
-
}, [dataProvider])
|
|
62
|
+
fetchProfileImage();
|
|
63
|
+
}, [dataProvider]);
|
|
81
64
|
|
|
82
65
|
return (
|
|
83
66
|
<Box sx={{ flexShrink: 0, ml: 0.75 }}>
|
|
@@ -87,12 +70,12 @@ const Profile = () => {
|
|
|
87
70
|
bgcolor: open ? iconBackColorOpen : 'transparent',
|
|
88
71
|
borderRadius: 1,
|
|
89
72
|
'&:hover': {
|
|
90
|
-
bgcolor: theme.palette.mode === 'dark' ? 'secondary.light' : 'secondary.lighter'
|
|
73
|
+
bgcolor: theme.palette.mode === 'dark' ? 'secondary.light' : 'secondary.lighter'
|
|
91
74
|
},
|
|
92
75
|
'&:focus-visible': {
|
|
93
76
|
outline: `2px solid ${theme.palette.secondary.dark}`,
|
|
94
|
-
outlineOffset: 2
|
|
95
|
-
}
|
|
77
|
+
outlineOffset: 2
|
|
78
|
+
}
|
|
96
79
|
}}
|
|
97
80
|
aria-label="open profile"
|
|
98
81
|
ref={anchorRef}
|
|
@@ -117,10 +100,10 @@ const Profile = () => {
|
|
|
117
100
|
{
|
|
118
101
|
name: 'offset',
|
|
119
102
|
options: {
|
|
120
|
-
offset: [0, 9]
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
]
|
|
103
|
+
offset: [0, 9]
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
]
|
|
124
107
|
}}
|
|
125
108
|
>
|
|
126
109
|
{({ TransitionProps }) => (
|
|
@@ -132,8 +115,8 @@ const Profile = () => {
|
|
|
132
115
|
minWidth: 240,
|
|
133
116
|
maxWidth: 290,
|
|
134
117
|
[theme.breakpoints.down('md')]: {
|
|
135
|
-
maxWidth: 250
|
|
136
|
-
}
|
|
118
|
+
maxWidth: 250
|
|
119
|
+
}
|
|
137
120
|
}}
|
|
138
121
|
>
|
|
139
122
|
<ClickAwayListener onClickAway={handleClose}>
|
|
@@ -142,11 +125,7 @@ const Profile = () => {
|
|
|
142
125
|
<Grid container justifyContent="space-between" alignItems="center">
|
|
143
126
|
<Grid item>
|
|
144
127
|
<Stack direction="row" spacing={1.25} alignItems="center">
|
|
145
|
-
<Avatar
|
|
146
|
-
alt="profile user"
|
|
147
|
-
src={profileImage}
|
|
148
|
-
sx={{ width: 32, height: 32 }}
|
|
149
|
-
/>
|
|
128
|
+
<Avatar alt="profile user" src={profileImage} sx={{ width: 32, height: 32 }} />
|
|
150
129
|
<Stack>
|
|
151
130
|
<Typography variant="h6">{identity?.name}</Typography>
|
|
152
131
|
<Typography variant="body2" color="textSecondary">
|
|
@@ -157,11 +136,7 @@ const Profile = () => {
|
|
|
157
136
|
</Grid>
|
|
158
137
|
<Grid item>
|
|
159
138
|
<Tooltip title="Logout">
|
|
160
|
-
<IconButton
|
|
161
|
-
size="large"
|
|
162
|
-
sx={{ color: 'text.primary' }}
|
|
163
|
-
onClick={handleLogout}
|
|
164
|
-
>
|
|
139
|
+
<IconButton size="large" sx={{ color: 'text.primary' }} onClick={handleLogout}>
|
|
165
140
|
<LogoutOutlined />
|
|
166
141
|
</IconButton>
|
|
167
142
|
</Tooltip>
|
|
@@ -175,7 +150,7 @@ const Profile = () => {
|
|
|
175
150
|
)}
|
|
176
151
|
</Popper>
|
|
177
152
|
</Box>
|
|
178
|
-
)
|
|
179
|
-
}
|
|
153
|
+
);
|
|
154
|
+
};
|
|
180
155
|
|
|
181
|
-
export default Profile
|
|
156
|
+
export default Profile;
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
import { Box, useMediaQuery } from '@mui/material'
|
|
2
|
-
import { useMenuConfig, useThemeConfig } from '../../../../hooks'
|
|
1
|
+
import { Box, useMediaQuery } from '@mui/material';
|
|
2
|
+
import { useMenuConfig, useThemeConfig } from '../../../../hooks';
|
|
3
3
|
|
|
4
|
-
import DrawerHeader from '../../Drawer/DrawerHeader'
|
|
5
|
-
import { LoadingIndicator } from 'react-admin'
|
|
6
|
-
import MobileSection from './MobileSection'
|
|
7
|
-
import Notification from './Notification'
|
|
8
|
-
import Profile from './Profile'
|
|
9
|
-
import PropTypes from 'prop-types'
|
|
4
|
+
import DrawerHeader from '../../Drawer/DrawerHeader';
|
|
5
|
+
import { LoadingIndicator } from 'react-admin';
|
|
6
|
+
import MobileSection from './MobileSection';
|
|
7
|
+
import Notification from './Notification';
|
|
8
|
+
import Profile from './Profile';
|
|
9
|
+
import PropTypes from 'prop-types';
|
|
10
10
|
|
|
11
11
|
const HeaderContent = ({ logoMain, logoIcon, notification, disableNotification }) => {
|
|
12
|
-
const matchesXs = useMediaQuery((theme) => theme.breakpoints.down('md'))
|
|
13
|
-
const { isHorizontalLayout, menuOrientation } = useThemeConfig()
|
|
14
|
-
const { drawerOpen } = useMenuConfig()
|
|
12
|
+
const matchesXs = useMediaQuery((theme) => theme.breakpoints.down('md'));
|
|
13
|
+
const { isHorizontalLayout, menuOrientation } = useThemeConfig();
|
|
14
|
+
const { drawerOpen } = useMenuConfig();
|
|
15
15
|
return (
|
|
16
16
|
<>
|
|
17
|
-
{(!drawerOpen || !matchesXs) && isHorizontalLayout(menuOrientation) &&
|
|
18
|
-
<DrawerHeader open logoMain={logoMain} logoIcon={logoIcon} />
|
|
19
|
-
)}
|
|
17
|
+
{(!drawerOpen || !matchesXs) && isHorizontalLayout(menuOrientation) && <DrawerHeader open logoMain={logoMain} logoIcon={logoIcon} />}
|
|
20
18
|
<Box sx={{ flexGrow: 1 }} />
|
|
21
19
|
{matchesXs && <Box sx={{ width: '100%', ml: 1 }} />}
|
|
22
20
|
|
|
@@ -25,14 +23,14 @@ const HeaderContent = ({ logoMain, logoIcon, notification, disableNotification }
|
|
|
25
23
|
{!matchesXs && <Profile />}
|
|
26
24
|
{matchesXs && <MobileSection />}
|
|
27
25
|
</>
|
|
28
|
-
)
|
|
29
|
-
}
|
|
26
|
+
);
|
|
27
|
+
};
|
|
30
28
|
|
|
31
29
|
HeaderContent.propTypes = {
|
|
32
30
|
logoMain: PropTypes.node,
|
|
33
31
|
logoIcon: PropTypes.node,
|
|
34
32
|
notification: PropTypes.string,
|
|
35
33
|
disableNotification: PropTypes.bool
|
|
36
|
-
}
|
|
34
|
+
};
|
|
37
35
|
|
|
38
|
-
export default HeaderContent
|
|
36
|
+
export default HeaderContent;
|
|
@@ -1,41 +1,27 @@
|
|
|
1
|
-
import { AppBar, Toolbar, useMediaQuery } from '@mui/material'
|
|
2
|
-
import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'
|
|
1
|
+
import { AppBar, Toolbar, useMediaQuery } from '@mui/material';
|
|
2
|
+
import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons';
|
|
3
3
|
|
|
4
|
-
import AppBarStyled from './AppBarStyled'
|
|
5
|
-
import HeaderContent from './HeaderContent'
|
|
6
|
-
import { IconButton } from '../../@extended'
|
|
7
|
-
import PropTypes from 'prop-types'
|
|
8
|
-
import { useMemo } from 'react'
|
|
9
|
-
import { useTheme } from '@mui/material/styles'
|
|
10
|
-
import { useThemeConfig } from '../../../hooks'
|
|
4
|
+
import AppBarStyled from './AppBarStyled';
|
|
5
|
+
import HeaderContent from './HeaderContent';
|
|
6
|
+
import { IconButton } from '../../@extended';
|
|
7
|
+
import PropTypes from 'prop-types';
|
|
8
|
+
import { useMemo } from 'react';
|
|
9
|
+
import { useTheme } from '@mui/material/styles';
|
|
10
|
+
import { useThemeConfig } from '../../../hooks';
|
|
11
11
|
|
|
12
|
-
const Header = ({
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
handleDrawerToggle,
|
|
17
|
-
notification,
|
|
18
|
-
disableNotification
|
|
19
|
-
}) => {
|
|
20
|
-
const theme = useTheme()
|
|
21
|
-
const downLG = useMediaQuery(theme.breakpoints.down('lg'))
|
|
22
|
-
const { menuOrientation, isHorizontalLayout } = useThemeConfig()
|
|
12
|
+
const Header = ({ open, logoMain, logoIcon, handleDrawerToggle, notification, disableNotification }) => {
|
|
13
|
+
const theme = useTheme();
|
|
14
|
+
const downLG = useMediaQuery(theme.breakpoints.down('lg'));
|
|
15
|
+
const { menuOrientation, isHorizontalLayout } = useThemeConfig();
|
|
23
16
|
|
|
24
|
-
const isHorizontal = isHorizontalLayout(menuOrientation) && !downLG
|
|
17
|
+
const isHorizontal = isHorizontalLayout(menuOrientation) && !downLG;
|
|
25
18
|
const headerContent = useMemo(
|
|
26
|
-
() =>
|
|
27
|
-
<HeaderContent
|
|
28
|
-
logoMain={logoMain}
|
|
29
|
-
logoIcon={logoIcon}
|
|
30
|
-
notification={notification}
|
|
31
|
-
disableNotification={disableNotification}
|
|
32
|
-
/>
|
|
33
|
-
),
|
|
19
|
+
() => <HeaderContent logoMain={logoMain} logoIcon={logoIcon} notification={notification} disableNotification={disableNotification} />,
|
|
34
20
|
[logoMain, logoIcon, notification]
|
|
35
|
-
)
|
|
21
|
+
);
|
|
36
22
|
|
|
37
|
-
const iconBackColorOpen = theme.palette.mode === 'dark' ? 'grey.200' : 'grey.300'
|
|
38
|
-
const iconBackColor = theme.palette.mode === 'dark' ? 'background.default' : 'grey.100'
|
|
23
|
+
const iconBackColorOpen = theme.palette.mode === 'dark' ? 'grey.200' : 'grey.300';
|
|
24
|
+
const iconBackColor = theme.palette.mode === 'dark' ? 'background.default' : 'grey.100';
|
|
39
25
|
|
|
40
26
|
const mainHeader = (
|
|
41
27
|
<Toolbar>
|
|
@@ -57,7 +43,7 @@ const Header = ({
|
|
|
57
43
|
) : null}
|
|
58
44
|
{headerContent}
|
|
59
45
|
</Toolbar>
|
|
60
|
-
)
|
|
46
|
+
);
|
|
61
47
|
|
|
62
48
|
const appBar = {
|
|
63
49
|
position: 'fixed',
|
|
@@ -66,13 +52,9 @@ const Header = ({
|
|
|
66
52
|
sx: {
|
|
67
53
|
borderBottom: `1px solid ${theme.palette.divider}`,
|
|
68
54
|
zIndex: 1200,
|
|
69
|
-
width: isHorizontal
|
|
70
|
-
? '100%'
|
|
71
|
-
: open
|
|
72
|
-
? 'calc(100% - 260px)'
|
|
73
|
-
: { xs: '100%', lg: 'calc(100% - 60px)' }
|
|
55
|
+
width: isHorizontal ? '100%' : open ? 'calc(100% - 260px)' : { xs: '100%', lg: 'calc(100% - 60px)' }
|
|
74
56
|
}
|
|
75
|
-
}
|
|
57
|
+
};
|
|
76
58
|
|
|
77
59
|
return (
|
|
78
60
|
<>
|
|
@@ -84,8 +66,8 @@ const Header = ({
|
|
|
84
66
|
<AppBar {...appBar}>{mainHeader}</AppBar>
|
|
85
67
|
)}
|
|
86
68
|
</>
|
|
87
|
-
)
|
|
88
|
-
}
|
|
69
|
+
);
|
|
70
|
+
};
|
|
89
71
|
|
|
90
72
|
Header.propTypes = {
|
|
91
73
|
open: PropTypes.bool,
|
|
@@ -94,6 +76,6 @@ Header.propTypes = {
|
|
|
94
76
|
logoIcon: PropTypes.node,
|
|
95
77
|
notification: PropTypes.string,
|
|
96
78
|
disableNotification: PropTypes.bool
|
|
97
|
-
}
|
|
79
|
+
};
|
|
98
80
|
|
|
99
|
-
export default Header
|
|
81
|
+
export default Header;
|
|
@@ -1,53 +1,45 @@
|
|
|
1
|
-
import 'simplebar/dist/simplebar.css'
|
|
1
|
+
import 'simplebar/dist/simplebar.css';
|
|
2
2
|
|
|
3
|
-
import { Box, Container, Toolbar, useMediaQuery } from '@mui/material'
|
|
4
|
-
import { useBreadcrumbs, useMenuConfig, useThemeConfig } from '../../hooks'
|
|
5
|
-
import { useEffect, useState } from 'react'
|
|
3
|
+
import { Box, Container, Toolbar, useMediaQuery } from '@mui/material';
|
|
4
|
+
import { useBreadcrumbs, useMenuConfig, useThemeConfig } from '../../hooks';
|
|
5
|
+
import { useEffect, useState } from 'react';
|
|
6
6
|
|
|
7
|
-
import Breadcrumbs from '../@extended/Breadcrumbs'
|
|
8
|
-
import Drawer from './Drawer'
|
|
9
|
-
import Footer from './Footer'
|
|
10
|
-
import Header from './Header'
|
|
11
|
-
import HorizontalBar from './Drawer/HorizontalBar'
|
|
12
|
-
import { Outlet } from 'react-router-dom'
|
|
13
|
-
import PropTypes from 'prop-types'
|
|
14
|
-
import { useTheme } from '@mui/material/styles'
|
|
7
|
+
import Breadcrumbs from '../@extended/Breadcrumbs';
|
|
8
|
+
import Drawer from './Drawer';
|
|
9
|
+
import Footer from './Footer';
|
|
10
|
+
import Header from './Header';
|
|
11
|
+
import HorizontalBar from './Drawer/HorizontalBar';
|
|
12
|
+
import { Outlet } from 'react-router-dom';
|
|
13
|
+
import PropTypes from 'prop-types';
|
|
14
|
+
import { useTheme } from '@mui/material/styles';
|
|
15
15
|
|
|
16
|
-
const Layout = ({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
disableNotification
|
|
24
|
-
}) => {
|
|
25
|
-
const theme = useTheme()
|
|
26
|
-
const { openDrawer } = useMenuConfig()
|
|
27
|
-
const { isLoading, navigation, breadcrumbs } = useBreadcrumbs()
|
|
28
|
-
const matchDownLG = useMediaQuery(theme.breakpoints.down('xl'))
|
|
29
|
-
const downLG = useMediaQuery(theme.breakpoints.down('lg'))
|
|
30
|
-
const { container, miniDrawer, menuOrientation, isHorizontalLayout } = useThemeConfig()
|
|
16
|
+
const Layout = ({ children, name, version, logoMain, logoIcon, notification, disableNotification }) => {
|
|
17
|
+
const theme = useTheme();
|
|
18
|
+
const { openDrawer } = useMenuConfig();
|
|
19
|
+
const { isLoading, navigation, breadcrumbs } = useBreadcrumbs();
|
|
20
|
+
const matchDownLG = useMediaQuery(theme.breakpoints.down('xl'));
|
|
21
|
+
const downLG = useMediaQuery(theme.breakpoints.down('lg'));
|
|
22
|
+
const { container, miniDrawer, menuOrientation, isHorizontalLayout } = useThemeConfig();
|
|
31
23
|
|
|
32
|
-
const { drawerOpen } = useMenuConfig()
|
|
33
|
-
const isHorizontal = isHorizontalLayout(menuOrientation) && !downLG
|
|
34
|
-
const [open, setOpen] = useState(!miniDrawer || drawerOpen)
|
|
24
|
+
const { drawerOpen } = useMenuConfig();
|
|
25
|
+
const isHorizontal = isHorizontalLayout(menuOrientation) && !downLG;
|
|
26
|
+
const [open, setOpen] = useState(!miniDrawer || drawerOpen);
|
|
35
27
|
const handleDrawerToggle = () => {
|
|
36
|
-
setOpen(!open)
|
|
37
|
-
openDrawer(!open)
|
|
38
|
-
}
|
|
28
|
+
setOpen(!open);
|
|
29
|
+
openDrawer(!open);
|
|
30
|
+
};
|
|
39
31
|
useEffect(() => {
|
|
40
32
|
if (!miniDrawer) {
|
|
41
|
-
setOpen(!matchDownLG)
|
|
42
|
-
openDrawer(!matchDownLG)
|
|
33
|
+
setOpen(!matchDownLG);
|
|
34
|
+
openDrawer(!matchDownLG);
|
|
43
35
|
}
|
|
44
36
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
45
|
-
}, [matchDownLG])
|
|
37
|
+
}, [matchDownLG]);
|
|
46
38
|
|
|
47
39
|
useEffect(() => {
|
|
48
|
-
if (open !== drawerOpen) setOpen(drawerOpen)
|
|
40
|
+
if (open !== drawerOpen) setOpen(drawerOpen);
|
|
49
41
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
50
|
-
}, [drawerOpen])
|
|
42
|
+
}, [drawerOpen]);
|
|
51
43
|
|
|
52
44
|
return (
|
|
53
45
|
<Box sx={{ display: 'flex', width: '100%' }}>
|
|
@@ -60,19 +52,11 @@ const Layout = ({
|
|
|
60
52
|
disableNotification={disableNotification}
|
|
61
53
|
/>
|
|
62
54
|
{!isHorizontal ? (
|
|
63
|
-
<Drawer
|
|
64
|
-
open={open}
|
|
65
|
-
handleDrawerToggle={handleDrawerToggle}
|
|
66
|
-
logoMain={logoMain}
|
|
67
|
-
logoIcon={logoIcon}
|
|
68
|
-
/>
|
|
55
|
+
<Drawer open={open} handleDrawerToggle={handleDrawerToggle} logoMain={logoMain} logoIcon={logoIcon} />
|
|
69
56
|
) : (
|
|
70
57
|
<HorizontalBar />
|
|
71
58
|
)}
|
|
72
|
-
<Box
|
|
73
|
-
component="main"
|
|
74
|
-
sx={{ width: 'calc(100% - 260px)', flexGrow: 1, p: { xs: 0, sm: 2, lg: 1 }, pt: { lg: 2 } }}
|
|
75
|
-
>
|
|
59
|
+
<Box component="main" sx={{ width: 'calc(100% - 260px)', flexGrow: 1, p: { xs: 0, sm: 2, lg: 1 }, pt: { lg: 2 } }}>
|
|
76
60
|
<Toolbar sx={{ mt: isHorizontal ? 8 : 'inherit' }} />
|
|
77
61
|
<Container
|
|
78
62
|
maxWidth={container ? 'xl' : false}
|
|
@@ -103,8 +87,8 @@ const Layout = ({
|
|
|
103
87
|
</Container>
|
|
104
88
|
</Box>
|
|
105
89
|
</Box>
|
|
106
|
-
)
|
|
107
|
-
}
|
|
90
|
+
);
|
|
91
|
+
};
|
|
108
92
|
|
|
109
93
|
Layout.propTypes = {
|
|
110
94
|
name: PropTypes.string,
|
|
@@ -114,6 +98,6 @@ Layout.propTypes = {
|
|
|
114
98
|
logoIcon: PropTypes.node,
|
|
115
99
|
notification: PropTypes.string,
|
|
116
100
|
disableNotification: PropTypes.bool
|
|
117
|
-
}
|
|
101
|
+
};
|
|
118
102
|
|
|
119
|
-
export default Layout
|
|
103
|
+
export default Layout;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import Loader from './Loader'
|
|
2
|
-
import { Suspense } from 'react'
|
|
1
|
+
import Loader from './Loader';
|
|
2
|
+
import { Suspense } from 'react';
|
|
3
3
|
|
|
4
4
|
const Loadable = (Component) => (props) =>
|
|
5
5
|
(
|
|
6
6
|
<Suspense fallback={<Loader />}>
|
|
7
7
|
<Component {...props} />
|
|
8
8
|
</Suspense>
|
|
9
|
-
)
|
|
9
|
+
);
|
|
10
10
|
|
|
11
|
-
export default Loadable
|
|
11
|
+
export default Loadable;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import LinearProgress from '@mui/material/LinearProgress'
|
|
2
|
-
import { styled } from '@mui/material/styles'
|
|
1
|
+
import LinearProgress from '@mui/material/LinearProgress';
|
|
2
|
+
import { styled } from '@mui/material/styles';
|
|
3
3
|
|
|
4
4
|
const LoaderWrapper = styled('div')(({ theme }) => ({
|
|
5
5
|
position: 'fixed',
|
|
@@ -8,14 +8,14 @@ const LoaderWrapper = styled('div')(({ theme }) => ({
|
|
|
8
8
|
zIndex: 2001,
|
|
9
9
|
width: '100%',
|
|
10
10
|
'& > * + *': {
|
|
11
|
-
marginTop: theme.spacing(2)
|
|
12
|
-
}
|
|
13
|
-
}))
|
|
11
|
+
marginTop: theme.spacing(2)
|
|
12
|
+
}
|
|
13
|
+
}));
|
|
14
14
|
|
|
15
15
|
const Loader = () => (
|
|
16
16
|
<LoaderWrapper>
|
|
17
17
|
<LinearProgress color="primary" />
|
|
18
18
|
</LoaderWrapper>
|
|
19
|
-
)
|
|
19
|
+
);
|
|
20
20
|
|
|
21
|
-
export default Loader
|
|
21
|
+
export default Loader;
|
package/src/components/Logo.jsx
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { ButtonBase } from '@mui/material'
|
|
2
|
-
import { Link } from 'react-router-dom'
|
|
3
|
-
import PropTypes from 'prop-types'
|
|
4
|
-
import logoIcon from '../assets/logo-icon.png'
|
|
5
|
-
import logoMain from '../assets/logo-main.png'
|
|
6
|
-
import { useThemeConfig } from '../hooks'
|
|
1
|
+
import { ButtonBase } from '@mui/material';
|
|
2
|
+
import { Link } from 'react-router-dom';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import logoIcon from '../assets/logo-icon.png';
|
|
5
|
+
import logoMain from '../assets/logo-main.png';
|
|
6
|
+
import { useThemeConfig } from '../hooks';
|
|
7
7
|
|
|
8
|
-
const defaultIcon = <img src={logoIcon} alt="Applica" width="20px"
|
|
9
|
-
const defaultMain = <img src={logoMain} alt="Applica" width="100px"
|
|
8
|
+
const defaultIcon = <img src={logoIcon} alt="Applica" width="20px" />;
|
|
9
|
+
const defaultMain = <img src={logoMain} alt="Applica" width="100px" />;
|
|
10
10
|
|
|
11
11
|
const Logo = ({ isIcon, sx, to, logoIcon = defaultIcon, logoMain = defaultMain }) => {
|
|
12
|
-
const { appDefaultPath } = useThemeConfig()
|
|
12
|
+
const { appDefaultPath } = useThemeConfig();
|
|
13
13
|
return (
|
|
14
14
|
<ButtonBase disableRipple component={Link} to={!to ? appDefaultPath : to} sx={sx}>
|
|
15
15
|
{isIcon ? logoIcon : logoMain}
|
|
16
16
|
</ButtonBase>
|
|
17
|
-
)
|
|
18
|
-
}
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
19
|
|
|
20
20
|
Logo.propTypes = {
|
|
21
21
|
reverse: PropTypes.bool,
|
|
@@ -23,7 +23,7 @@ Logo.propTypes = {
|
|
|
23
23
|
sx: PropTypes.object,
|
|
24
24
|
to: PropTypes.string,
|
|
25
25
|
logoIcon: PropTypes.node,
|
|
26
|
-
logoMain: PropTypes.node
|
|
27
|
-
}
|
|
26
|
+
logoMain: PropTypes.node
|
|
27
|
+
};
|
|
28
28
|
|
|
29
|
-
export default Logo
|
|
29
|
+
export default Logo;
|