@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.
Files changed (253) hide show
  1. package/bitbucket-pipelines.yml +2 -0
  2. package/dist/ApplicaAdmin.d.ts.map +1 -1
  3. package/dist/components/@extended/AnimateButton.d.ts +1 -1
  4. package/dist/components/@extended/AnimateButton.d.ts.map +1 -1
  5. package/dist/components/@extended/Avatar.d.ts.map +1 -1
  6. package/dist/components/@extended/Breadcrumbs.d.ts.map +1 -1
  7. package/dist/components/@extended/IconButton.d.ts.map +1 -1
  8. package/dist/components/@extended/LoadingButton.d.ts.map +1 -1
  9. package/dist/components/@extended/Tooltip.d.ts.map +1 -1
  10. package/dist/components/@extended/Transitions.d.ts.map +1 -1
  11. package/dist/components/@extended/progress/CircularWithLabel.d.ts.map +1 -1
  12. package/dist/components/@extended/progress/CircularWithPath.d.ts.map +1 -1
  13. package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.d.ts +1 -1
  14. package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.d.ts.map +1 -1
  15. package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavGroup.d.ts.map +1 -1
  16. package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavItem.d.ts.map +1 -1
  17. package/dist/components/Layout/Drawer/DrawerHeader/DrawerHeaderStyled.d.ts.map +1 -1
  18. package/dist/components/Layout/Drawer/DrawerHeader/index.d.ts.map +1 -1
  19. package/dist/components/Layout/Drawer/MiniDrawerStyled.d.ts.map +1 -1
  20. package/dist/components/Layout/Drawer/index.d.ts.map +1 -1
  21. package/dist/components/Layout/Footer.d.ts.map +1 -1
  22. package/dist/components/Layout/Header/AppBarStyled.d.ts.map +1 -1
  23. package/dist/components/Layout/Header/HeaderContent/Notification.d.ts.map +1 -1
  24. package/dist/components/Layout/Header/HeaderContent/NotificationItem.d.ts.map +1 -1
  25. package/dist/components/Layout/Header/HeaderContent/Profile.d.ts.map +1 -1
  26. package/dist/components/Layout/Header/HeaderContent/index.d.ts.map +1 -1
  27. package/dist/components/Layout/Header/index.d.ts.map +1 -1
  28. package/dist/components/Layout/index.d.ts.map +1 -1
  29. package/dist/components/MenuPopover/styles.d.ts.map +1 -1
  30. package/dist/components/Notification.d.ts.map +1 -1
  31. package/dist/components/ScrollX.d.ts.map +1 -1
  32. package/dist/components/ra-buttons/EditInDialogButton.d.ts.map +1 -1
  33. package/dist/components/ra-fields/CoverField.d.ts.map +1 -1
  34. package/dist/components/ra-fields/DateAgoField.d.ts.map +1 -1
  35. package/dist/components/ra-fields/ReadonlyField.d.ts.map +1 -1
  36. package/dist/components/ra-forms/CardForm.d.ts.map +1 -1
  37. package/dist/components/ra-forms/LongForm/useFormRootPath.d.ts.map +1 -1
  38. package/dist/components/ra-forms/TabbedForm.d.ts.map +1 -1
  39. package/dist/components/ra-inputs/ReferenceManyInput.d.ts.map +1 -1
  40. package/dist/components/ra-lists/Empty.d.ts.map +1 -1
  41. package/dist/components/ra-lists/NotificationList/NotificationList.d.ts.map +1 -1
  42. package/dist/components/ra-lists/NotificationList/button/MarkAsReadedButton.d.ts.map +1 -1
  43. package/dist/components/ra-lists/NotificationList/field/NotificationField.d.ts.map +1 -1
  44. package/dist/contexts/MenuConfigContext.d.ts.map +1 -1
  45. package/dist/contexts/MenuPropTypes.d.ts.map +1 -1
  46. package/dist/dev/useCliErrorCatcher.d.ts +1 -1
  47. package/dist/hooks/useMenu.d.ts.map +1 -1
  48. package/dist/i18n/useI18nCatcher.d.ts +1 -1
  49. package/dist/i18n/useI18nLanguages.d.ts +1 -1
  50. package/dist/i18n/useI18nLanguages.d.ts.map +1 -1
  51. package/dist/i18n/useI18nProvider.d.ts.map +1 -1
  52. package/dist/react-admin.cjs.js +2 -1
  53. package/dist/react-admin.cjs.js.map +1 -0
  54. package/dist/react-admin.es.js +300 -784
  55. package/dist/react-admin.es.js.map +1 -0
  56. package/dist/react-admin.umd.js +2 -1
  57. package/dist/react-admin.umd.js.map +1 -0
  58. package/dist/themes/overrides/OutlinedInput.d.ts.map +1 -1
  59. package/dist/themes/palette.d.ts.map +1 -1
  60. package/dist/themes/theme/theme1.d.ts.map +1 -1
  61. package/dist/themes/theme/theme2.d.ts.map +1 -1
  62. package/dist/themes/theme/theme3.d.ts.map +1 -1
  63. package/dist/themes/theme/theme4.d.ts.map +1 -1
  64. package/dist/themes/theme/theme5.d.ts.map +1 -1
  65. package/dist/themes/theme/theme6.d.ts.map +1 -1
  66. package/dist/themes/theme/theme7.d.ts.map +1 -1
  67. package/dist/themes/theme/theme8.d.ts.map +1 -1
  68. package/dist/utils/index.d.ts +2 -2
  69. package/dist/utils/index.d.ts.map +1 -1
  70. package/dist/utils/lang.d.ts +1 -1
  71. package/dist/utils/lang.d.ts.map +1 -1
  72. package/dist/utils/time.d.ts +2 -1
  73. package/dist/utils/time.d.ts.map +1 -1
  74. package/package.json +2 -2
  75. package/src/Admin.jsx +8 -8
  76. package/src/AdminContext.jsx +9 -9
  77. package/src/ApplicaAdmin.jsx +30 -35
  78. package/src/components/@extended/AnimateButton.jsx +25 -33
  79. package/src/components/@extended/Avatar.jsx +35 -42
  80. package/src/components/@extended/Breadcrumbs.jsx +62 -96
  81. package/src/components/@extended/Dot.jsx +14 -14
  82. package/src/components/@extended/IconButton.jsx +55 -65
  83. package/src/components/@extended/LoadingButton.jsx +84 -86
  84. package/src/components/@extended/Tooltip.jsx +24 -27
  85. package/src/components/@extended/Transitions.jsx +98 -107
  86. package/src/components/@extended/index.jsx +10 -10
  87. package/src/components/@extended/progress/CircularWithLabel.jsx +7 -9
  88. package/src/components/@extended/progress/CircularWithPath.jsx +9 -18
  89. package/src/components/@extended/progress/LinearWithIcon.jsx +5 -5
  90. package/src/components/@extended/progress/LinearWithLabel.jsx +5 -5
  91. package/src/components/@extended/progress/index.jsx +5 -5
  92. package/src/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.jsx +112 -131
  93. package/src/components/Layout/Drawer/DrawerContent/Navigation/NavGroup.jsx +67 -88
  94. package/src/components/Layout/Drawer/DrawerContent/Navigation/NavItem.jsx +63 -79
  95. package/src/components/Layout/Drawer/DrawerContent/Navigation/index.jsx +28 -28
  96. package/src/components/Layout/Drawer/DrawerContent/index.jsx +7 -7
  97. package/src/components/Layout/Drawer/DrawerHeader/DrawerHeaderStyled.jsx +13 -15
  98. package/src/components/Layout/Drawer/DrawerHeader/index.jsx +17 -22
  99. package/src/components/Layout/Drawer/HorizontalBar.jsx +17 -17
  100. package/src/components/Layout/Drawer/MiniDrawerStyled.jsx +27 -29
  101. package/src/components/Layout/Drawer/index.jsx +21 -24
  102. package/src/components/Layout/Footer.jsx +7 -12
  103. package/src/components/Layout/Header/AppBarStyled.jsx +26 -28
  104. package/src/components/Layout/Header/HeaderContent/MobileSection.jsx +27 -27
  105. package/src/components/Layout/Header/HeaderContent/Notification.jsx +34 -55
  106. package/src/components/Layout/Header/HeaderContent/NotificationItem.jsx +24 -36
  107. package/src/components/Layout/Header/HeaderContent/Profile.jsx +48 -73
  108. package/src/components/Layout/Header/HeaderContent/index.jsx +16 -18
  109. package/src/components/Layout/Header/index.jsx +25 -43
  110. package/src/components/Layout/index.jsx +36 -52
  111. package/src/components/Loadable.jsx +4 -4
  112. package/src/components/Loader.jsx +7 -7
  113. package/src/components/Logo.jsx +14 -14
  114. package/src/components/MainIcon.jsx +6 -6
  115. package/src/components/MenuPopover/MenuPopover.jsx +15 -15
  116. package/src/components/MenuPopover/getPosition.jsx +40 -40
  117. package/src/components/MenuPopover/index.jsx +3 -3
  118. package/src/components/MenuPopover/styles.jsx +20 -20
  119. package/src/components/Notification.jsx +7 -7
  120. package/src/components/ScrollTop.jsx +13 -13
  121. package/src/components/ScrollX.jsx +4 -4
  122. package/src/components/SmallIcon.jsx +6 -6
  123. package/src/components/ra-buttons/EditInDialogButton.jsx +39 -45
  124. package/src/components/ra-buttons/ImpersonateUserButton.jsx +20 -20
  125. package/src/components/ra-buttons/index.jsx +4 -4
  126. package/src/components/ra-fields/ActionsField.jsx +12 -12
  127. package/src/components/ra-fields/CoverField.jsx +20 -26
  128. package/src/components/ra-fields/DateAgoField.jsx +17 -20
  129. package/src/components/ra-fields/DateField.jsx +14 -14
  130. package/src/components/ra-fields/EmailField.jsx +14 -14
  131. package/src/components/ra-fields/FileField.jsx +23 -23
  132. package/src/components/ra-fields/FunctionField.jsx +5 -5
  133. package/src/components/ra-fields/ImageField.jsx +11 -11
  134. package/src/components/ra-fields/ReadonlyField.jsx +40 -42
  135. package/src/components/ra-fields/ReferenceManyField.jsx +21 -21
  136. package/src/components/ra-fields/SizeField.jsx +15 -15
  137. package/src/components/ra-fields/TextField.jsx +14 -14
  138. package/src/components/ra-fields/index.jsx +15 -15
  139. package/src/components/ra-forms/CardForm.jsx +34 -40
  140. package/src/components/ra-forms/LongForm/useFormRootPath.ts +8 -13
  141. package/src/components/ra-forms/TabbedForm.jsx +10 -10
  142. package/src/components/ra-forms/Toolbar.jsx +15 -15
  143. package/src/components/ra-forms/index.jsx +9 -9
  144. package/src/components/ra-inputs/AutocompleteArrayInput.jsx +7 -7
  145. package/src/components/ra-inputs/AutocompleteInput.jsx +9 -9
  146. package/src/components/ra-inputs/BooleanInput.jsx +19 -19
  147. package/src/components/ra-inputs/DateInput.jsx +13 -13
  148. package/src/components/ra-inputs/FileInput.jsx +33 -33
  149. package/src/components/ra-inputs/ImageInput.jsx +19 -19
  150. package/src/components/ra-inputs/NumberInput.jsx +13 -13
  151. package/src/components/ra-inputs/RecordInput.jsx +39 -39
  152. package/src/components/ra-inputs/ReferenceArrayInput.jsx +10 -10
  153. package/src/components/ra-inputs/ReferenceInput.jsx +10 -10
  154. package/src/components/ra-inputs/ReferenceManyInput.jsx +13 -24
  155. package/src/components/ra-inputs/SearchInput.jsx +6 -6
  156. package/src/components/ra-inputs/SelectArrayInput.jsx +19 -19
  157. package/src/components/ra-inputs/TimeInput.jsx +21 -21
  158. package/src/components/ra-lists/Empty.jsx +32 -37
  159. package/src/components/ra-lists/List.jsx +9 -9
  160. package/src/components/ra-lists/NotificationList/NotificationList.jsx +14 -16
  161. package/src/components/ra-lists/NotificationList/button/MarkAsReadedButton.jsx +21 -25
  162. package/src/components/ra-lists/NotificationList/button/MarkAsUnreadedButton.jsx +19 -19
  163. package/src/components/ra-lists/NotificationList/button/index.jsx +2 -2
  164. package/src/components/ra-lists/NotificationList/field/NotificationField.jsx +20 -31
  165. package/src/components/ra-lists/NotificationList/field/index.jsx +1 -1
  166. package/src/components/ra-lists/NotificationList/index.jsx +2 -2
  167. package/src/components/ra-lists/index.jsx +5 -5
  168. package/src/components/third-party/SimpleBar.jsx +10 -10
  169. package/src/components/third-party/index.jsx +2 -2
  170. package/src/contexts/MenuConfigContext.jsx +35 -35
  171. package/src/contexts/MenuPropTypes.jsx +7 -7
  172. package/src/contexts/index.jsx +5 -5
  173. package/src/dev/index.jsx +2 -2
  174. package/src/dev/useCliErrorCatcher.jsx +32 -32
  175. package/src/hooks/index.jsx +8 -16
  176. package/src/hooks/useAppConfig.jsx +4 -4
  177. package/src/hooks/useBreadcrumbs.jsx +37 -37
  178. package/src/hooks/useLocalStorage.jsx +16 -16
  179. package/src/hooks/useMenu.jsx +83 -88
  180. package/src/hooks/useMenuConfig.jsx +4 -4
  181. package/src/hooks/useResourceTitle.jsx +13 -13
  182. package/src/hooks/useThemeConfig.jsx +4 -4
  183. package/src/i18n/createI18nProvider.jsx +7 -7
  184. package/src/i18n/index.jsx +4 -4
  185. package/src/i18n/useI18nCatcher.jsx +26 -26
  186. package/src/i18n/useI18nLanguages.jsx +12 -16
  187. package/src/i18n/useI18nProvider.jsx +3 -4
  188. package/src/themes/getColors.jsx +8 -8
  189. package/src/themes/getShadow.jsx +17 -17
  190. package/src/themes/index.jsx +29 -29
  191. package/src/themes/overrides/Accordion.jsx +9 -9
  192. package/src/themes/overrides/AccordionDetails.jsx +5 -5
  193. package/src/themes/overrides/AccordionSummary.jsx +11 -11
  194. package/src/themes/overrides/Alert.jsx +21 -21
  195. package/src/themes/overrides/AlertTitle.jsx +5 -5
  196. package/src/themes/overrides/Autocomplete.jsx +9 -9
  197. package/src/themes/overrides/Badge.jsx +12 -12
  198. package/src/themes/overrides/Button.jsx +62 -62
  199. package/src/themes/overrides/ButtonBase.jsx +4 -4
  200. package/src/themes/overrides/ButtonGroup.jsx +4 -4
  201. package/src/themes/overrides/CardContent.jsx +6 -6
  202. package/src/themes/overrides/Checkbox.jsx +31 -31
  203. package/src/themes/overrides/Chip.jsx +22 -22
  204. package/src/themes/overrides/Dialog.jsx +7 -7
  205. package/src/themes/overrides/DialogContentText.jsx +5 -5
  206. package/src/themes/overrides/DialogTitle.jsx +5 -5
  207. package/src/themes/overrides/Fab.jsx +21 -21
  208. package/src/themes/overrides/IconButton.jsx +8 -8
  209. package/src/themes/overrides/InputBase.jsx +3 -3
  210. package/src/themes/overrides/InputLabel.jsx +8 -8
  211. package/src/themes/overrides/LinearProgress.jsx +6 -6
  212. package/src/themes/overrides/Link.jsx +4 -4
  213. package/src/themes/overrides/ListItemButton.jsx +7 -7
  214. package/src/themes/overrides/ListItemIcon.jsx +5 -5
  215. package/src/themes/overrides/LoadingButton.jsx +6 -6
  216. package/src/themes/overrides/OutlinedInput.jsx +20 -21
  217. package/src/themes/overrides/Pagination.jsx +4 -4
  218. package/src/themes/overrides/PaginationItem.jsx +55 -55
  219. package/src/themes/overrides/Popover.jsx +5 -5
  220. package/src/themes/overrides/Radio.jsx +30 -30
  221. package/src/themes/overrides/Slider.jsx +20 -20
  222. package/src/themes/overrides/Switch.jsx +26 -26
  223. package/src/themes/overrides/Tab.jsx +7 -7
  224. package/src/themes/overrides/TableBody.jsx +11 -11
  225. package/src/themes/overrides/TableCell.jsx +12 -12
  226. package/src/themes/overrides/TableFooter.jsx +5 -5
  227. package/src/themes/overrides/TableHead.jsx +5 -5
  228. package/src/themes/overrides/TablePagination.jsx +6 -6
  229. package/src/themes/overrides/TableRow.jsx +10 -10
  230. package/src/themes/overrides/Tabs.jsx +5 -5
  231. package/src/themes/overrides/ToggleButton.jsx +7 -7
  232. package/src/themes/overrides/Tooltip.jsx +5 -5
  233. package/src/themes/overrides/TreeItem.jsx +7 -7
  234. package/src/themes/overrides/Typography.jsx +5 -5
  235. package/src/themes/overrides/index.jsx +47 -47
  236. package/src/themes/palette.jsx +22 -34
  237. package/src/themes/shadows.jsx +4 -4
  238. package/src/themes/theme/default.jsx +17 -17
  239. package/src/themes/theme/index.jsx +23 -23
  240. package/src/themes/theme/theme1.jsx +24 -46
  241. package/src/themes/theme/theme2.jsx +24 -46
  242. package/src/themes/theme/theme3.jsx +24 -46
  243. package/src/themes/theme/theme4.jsx +24 -46
  244. package/src/themes/theme/theme5.jsx +24 -46
  245. package/src/themes/theme/theme6.jsx +24 -46
  246. package/src/themes/theme/theme7.jsx +24 -46
  247. package/src/themes/theme/theme8.jsx +24 -46
  248. package/src/themes/typography.jsx +16 -16
  249. package/src/utils/{lang.js → lang.ts} +4 -4
  250. package/src/utils/time.ts +14 -0
  251. package/vite.config.js +11 -10
  252. package/src/utils/time.js +0 -13
  253. /package/src/utils/{index.js → index.ts} +0 -0
@@ -1,22 +1,14 @@
1
- import {
2
- Avatar,
3
- Divider,
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
- Box,
4
- ButtonBase,
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
- open,
14
- logoMain,
15
- logoIcon,
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
- children,
18
- name,
19
- version,
20
- logoMain,
21
- logoIcon,
22
- notification,
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;
@@ -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;