@campxdev/shared 0.6.17 → 0.6.19

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 (220) hide show
  1. package/.eslintignore +3 -3
  2. package/.eslintrc.js +33 -33
  3. package/.prettierrc +10 -10
  4. package/antd.customize.less +73 -73
  5. package/exports.ts +16 -16
  6. package/package.json +93 -93
  7. package/publish.sh +1 -1
  8. package/src/assets/fonts/avenir/index.ts +2 -2
  9. package/src/assets/fonts/poppins/index.ts +7 -7
  10. package/src/assets/images/index.ts +17 -17
  11. package/src/assets/images/unauth.svg +92 -92
  12. package/src/components/ActionButton.tsx +28 -28
  13. package/src/components/Attachment.tsx +26 -26
  14. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  15. package/src/components/AutocompleteSearch/index.tsx +1 -1
  16. package/src/components/Breadcrumbs.tsx +72 -72
  17. package/src/components/Card.tsx +98 -98
  18. package/src/components/CardsGrid.tsx +28 -28
  19. package/src/components/ChangePassword.tsx +164 -164
  20. package/src/components/Chips.tsx +81 -81
  21. package/src/components/Detail.tsx +15 -15
  22. package/src/components/DetailsGrid.tsx +52 -52
  23. package/src/components/DividerHeading.tsx +41 -41
  24. package/src/components/DrawerWrapper/DialogWrapper.tsx +63 -63
  25. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  26. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  27. package/src/components/DropDownButton.tsx +194 -194
  28. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  29. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  30. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  31. package/src/components/ErrorBoundary/index.tsx +1 -1
  32. package/src/components/ErrorBox.tsx +42 -42
  33. package/src/components/FloatingContainer.tsx +33 -33
  34. package/src/components/Form/Form.tsx +156 -156
  35. package/src/components/Form/RenderForm.tsx +188 -188
  36. package/src/components/FullCalendar/Actions.tsx +162 -162
  37. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  38. package/src/components/FullScreenLoader.tsx +19 -19
  39. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  40. package/src/components/HookForm/DatePicker.tsx +65 -65
  41. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  42. package/src/components/HookForm/FormLabel.tsx +14 -14
  43. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  44. package/src/components/HookForm/MultiSelect.tsx +100 -100
  45. package/src/components/HookForm/RadioGroup.tsx +106 -106
  46. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  47. package/src/components/HookForm/SingleSelect.tsx +93 -93
  48. package/src/components/HookForm/TextField.tsx +74 -74
  49. package/src/components/HookForm/TimePicker.tsx +82 -82
  50. package/src/components/HookForm/index.ts +23 -23
  51. package/src/components/IconButtons/IconButtons.tsx +137 -137
  52. package/src/components/IconButtons/Icons.tsx +268 -268
  53. package/src/components/IconButtons/assets/edit.svg +4 -4
  54. package/src/components/IconButtons/assets/eye.svg +6 -6
  55. package/src/components/IconButtons/assets/trash.svg +7 -7
  56. package/src/components/IconButtons/index.tsx +8 -8
  57. package/src/components/IconLabel.tsx +37 -37
  58. package/src/components/Image/Image.tsx +43 -43
  59. package/src/components/Image/index.tsx +1 -1
  60. package/src/components/ImageUpload.tsx +98 -98
  61. package/src/components/Input/AutoCompleteSearch.tsx +113 -113
  62. package/src/components/Input/DatePicker.tsx +60 -60
  63. package/src/components/Input/DateRangePicker.tsx +131 -131
  64. package/src/components/Input/DateTimePicker.tsx +70 -70
  65. package/src/components/Input/FormLabel.tsx +14 -14
  66. package/src/components/Input/MultiCheckbox.tsx +79 -79
  67. package/src/components/Input/MultiSelect.tsx +52 -52
  68. package/src/components/Input/RadioGroup.tsx +61 -61
  69. package/src/components/Input/SingleCheckbox.tsx +23 -23
  70. package/src/components/Input/SingleSelect.tsx +124 -124
  71. package/src/components/Input/TextField.tsx +50 -50
  72. package/src/components/Input/TimePicker.tsx +82 -82
  73. package/src/components/Input/index.ts +26 -26
  74. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  75. package/src/components/JsonPreview/index.tsx +1 -1
  76. package/src/components/LabelValue/LabelValue.tsx +21 -21
  77. package/src/components/LabelValue/index.tsx +1 -1
  78. package/src/components/Layout/ChangePassword.tsx +49 -49
  79. package/src/components/Layout/Header/AppHeader.tsx +124 -124
  80. package/src/components/Layout/Header/AppsMenu.tsx +92 -92
  81. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  82. package/src/components/Layout/Header/FreshDeskHelpButton.tsx +19 -19
  83. package/src/components/Layout/Header/Notification.tsx +13 -13
  84. package/src/components/Layout/Header/UserBox.tsx +70 -70
  85. package/src/components/Layout/Header/applications.ts +90 -90
  86. package/src/components/Layout/Header/assets/campx.svg +29 -29
  87. package/src/components/Layout/Header/assets/index.ts +29 -32
  88. package/src/components/Layout/Header/assets/newAssets/campx_square_small.svg +9 -9
  89. package/src/components/Layout/Header/assets/newAssets/commutex.svg +14 -14
  90. package/src/components/Layout/Header/assets/newAssets/commutexSmall.svg +11 -11
  91. package/src/components/Layout/Header/assets/newAssets/enroll.svg +14 -14
  92. package/src/components/Layout/Header/assets/newAssets/enrollx.svg +14 -14
  93. package/src/components/Layout/Header/assets/newAssets/exams_small.svg +12 -12
  94. package/src/components/Layout/Header/assets/newAssets/examsx.svg +14 -14
  95. package/src/components/Layout/Header/assets/newAssets/hostel_small.svg +13 -13
  96. package/src/components/Layout/Header/assets/newAssets/hostelx.svg +13 -13
  97. package/src/components/Layout/Header/assets/newAssets/libraryx.svg +12 -12
  98. package/src/components/Layout/Header/assets/newAssets/pay_small.svg +16 -16
  99. package/src/components/Layout/Header/assets/newAssets/payx.svg +19 -19
  100. package/src/components/Layout/Header/assets/newAssets/people_small.svg +9 -9
  101. package/src/components/Layout/Header/assets/newAssets/peoplex.svg +12 -12
  102. package/src/components/Layout/Header/assets/newAssets/squarex.svg +12 -12
  103. package/src/components/Layout/Header/assets/payxHeader.svg +21 -21
  104. package/src/components/Layout/Header/assets/peoplexHeader.svg +14 -14
  105. package/src/components/Layout/Header/icons.tsx +57 -57
  106. package/src/components/Layout/Header/index.tsx +1 -1
  107. package/src/components/Layout/Header/styles.tsx +98 -98
  108. package/src/components/LayoutWrapper.tsx +25 -25
  109. package/src/components/LinearProgress.tsx +19 -19
  110. package/src/components/ListItemButton.tsx +94 -94
  111. package/src/components/LoginForm.tsx +103 -103
  112. package/src/components/MediaRow/MediaRow.tsx +69 -69
  113. package/src/components/MediaRow/index.tsx +1 -1
  114. package/src/components/MenuButton.tsx +103 -103
  115. package/src/components/ModalButtons/DialogButton.tsx +88 -88
  116. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  117. package/src/components/ModalButtons/index.tsx +4 -4
  118. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  119. package/src/components/NoDataIllustration/index.tsx +1 -1
  120. package/src/components/PageContent.tsx +17 -17
  121. package/src/components/PageHeader.tsx +52 -52
  122. package/src/components/PageNotFound.tsx +26 -26
  123. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  124. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  125. package/src/components/PopupConfirm/index.tsx +1 -1
  126. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  127. package/src/components/Router.tsx +7 -7
  128. package/src/components/Row/Row.tsx +24 -24
  129. package/src/components/Row/index.tsx +1 -1
  130. package/src/components/SearchBar/SearchBar.tsx +53 -53
  131. package/src/components/SearchBar/index.tsx +1 -1
  132. package/src/components/SideMenuHeader.tsx +29 -29
  133. package/src/components/SideNav.tsx +168 -168
  134. package/src/components/Spinner.tsx +18 -18
  135. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  136. package/src/components/StepsHeader/index.tsx +1 -1
  137. package/src/components/StyledTableContainer.tsx +33 -33
  138. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  139. package/src/components/SwitchButton/index.tsx +1 -1
  140. package/src/components/Table.tsx +42 -42
  141. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  142. package/src/components/TableComponent/Icons/index.tsx +50 -50
  143. package/src/components/TableComponent/ReactTable.tsx +293 -293
  144. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  145. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  146. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  147. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  148. package/src/components/TableComponent/index.tsx +226 -226
  149. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  150. package/src/components/TableComponent/styles.tsx +173 -173
  151. package/src/components/TableComponent/types.ts +57 -57
  152. package/src/components/Tabs/Tabs.tsx +52 -52
  153. package/src/components/Tabs/TabsContainer.tsx +50 -50
  154. package/src/components/Tabs/index.tsx +1 -1
  155. package/src/components/Tabs/styles.tsx +55 -55
  156. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  157. package/src/components/ToastContainer/index.tsx +1 -1
  158. package/src/components/UploadButton/UploadButton.tsx +126 -126
  159. package/src/components/UploadButton/index.tsx +1 -1
  160. package/src/components/UploadButton/types.ts +19 -19
  161. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  162. package/src/components/UploadDocument/index.tsx +1 -1
  163. package/src/components/UploadFileDialog/AnimatedUploadFile.gif +0 -0
  164. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -240
  165. package/src/components/UploadFileDialog/index.tsx +1 -1
  166. package/src/components/index.ts +86 -86
  167. package/src/config/axios.ts +74 -74
  168. package/src/config/axiosXTenant.ts +57 -57
  169. package/src/constants/UIConstants.ts +97 -97
  170. package/src/constants/formValidations.ts +6 -6
  171. package/src/constants/index.ts +5 -5
  172. package/src/constants/isDevelopment.ts +3 -3
  173. package/src/constants/permissions.ts +67 -67
  174. package/src/constants/validateMessages.ts +12 -12
  175. package/src/contexts/LoginFormProvider.tsx +39 -39
  176. package/src/contexts/Providers.tsx +59 -59
  177. package/src/contexts/QueryClientProvider.tsx +22 -22
  178. package/src/hooks/index.ts +3 -3
  179. package/src/hooks/useAppInit.ts +33 -33
  180. package/src/hooks/useAuth.ts +91 -91
  181. package/src/hooks/useFetch.ts +53 -53
  182. package/src/hooks/useRouter.ts +31 -31
  183. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  184. package/src/layouts/Components/icons/index.tsx +403 -403
  185. package/src/layouts/Components/styles.tsx +60 -60
  186. package/src/layouts/ComponentsLayout.tsx +3 -3
  187. package/src/permissions/PageWithPermission.tsx +18 -18
  188. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  189. package/src/permissions/PermissionsStore.ts +352 -352
  190. package/src/permissions/ValidateAccess.tsx +18 -18
  191. package/src/permissions/index.ts +3 -3
  192. package/src/react-app-env.d.ts +1 -1
  193. package/src/shared-state/AssetsStore.ts +15 -15
  194. package/src/shared-state/UserStore.ts +13 -13
  195. package/src/shared-state/index.ts +3 -3
  196. package/src/theme/App.less +3 -3
  197. package/src/theme/MuiThemeProvider.tsx +13 -13
  198. package/src/theme/customCssBaseline.ts +78 -78
  199. package/src/theme/index.css +75 -75
  200. package/src/theme/muiTheme.ts +490 -490
  201. package/src/theme/theme.d.ts +75 -75
  202. package/src/utils/alphabet.ts +23 -23
  203. package/src/utils/arrayPadEnd.ts +3 -3
  204. package/src/utils/formatCurrency.ts +9 -9
  205. package/src/utils/getUrlParams.ts +5 -5
  206. package/src/utils/index.ts +8 -8
  207. package/src/utils/logout.ts +24 -24
  208. package/src/utils/ordinalSuffixOf.ts +14 -14
  209. package/src/utils/romanize.ts +40 -40
  210. package/src/utils/withLocalization.tsx +11 -11
  211. package/src/utils/withRouteWrapper.tsx +25 -25
  212. package/src/utils/withSuspense.tsx +6 -6
  213. package/styled-components.tsx +60 -60
  214. package/todo.md +20 -8
  215. package/tsconfig.json +21 -21
  216. package/src/components/Layout/Header/assets/newAssets/commuteX.png +0 -0
  217. package/src/components/Styled/OutlinedIconButton.tsx +0 -7
  218. package/src/components/Styled/index.tsx +0 -1
  219. package/src/components/Swiper/Swiper.tsx +0 -39
  220. package/src/components/Swiper/index.tsx +0 -1
@@ -1,124 +1,124 @@
1
- import { Box, styled, Typography } from '@mui/material'
2
- import { ReactNode } from 'react'
3
- import { Link } from 'react-router-dom'
4
- import { isDevelopment } from '../../../constants/isDevelopment'
5
- import { applications } from './applications'
6
- import AppsMenu from './AppsMenu'
7
- import {
8
- collegex,
9
- commutex,
10
- enrollx,
11
- examx,
12
- hostelx,
13
- payx,
14
- peoplex,
15
- } from './assets'
16
-
17
- import CogWheelMenu from './CogWheelMenu'
18
- import FreshDeskHelpButton from './FreshDeskHelpButton'
19
- import Notification from './Notification'
20
- import { StyledHeader, StyledImageWrapper } from './styles'
21
- import UserBox from './UserBox'
22
-
23
- const StyledLogosWrapper = styled(Box)(() => ({
24
- display: 'flex',
25
- alignItems: 'center',
26
- gap: '10px',
27
- padding: '10px',
28
- transition: 'background ease 0.3s',
29
- borderRadius: '5px',
30
- '&:hover': {
31
- background: 'rgba(0, 0, 0, 0.05)',
32
- },
33
- }))
34
-
35
- const StyledLink = styled(Link)(() => ({
36
- textDecoration: 'none',
37
- }))
38
-
39
- const imageMap = {
40
- ums: collegex,
41
- enroll: enrollx,
42
- exams: examx,
43
- payments: payx,
44
- people: peoplex,
45
- campx: collegex,
46
- commute: commutex,
47
- hostel: hostelx,
48
- }
49
-
50
- interface AppHeaderProps {
51
- clientLogo: string
52
- username: string
53
- profileIcon: string
54
- permissions?: any
55
- userBoxActions: {
56
- label: ReactNode
57
- icon?: ReactNode
58
- onClick: any
59
- }[]
60
- cogWheelMenu?: { label: string; path: string }[]
61
- }
62
-
63
- export default function AppHeader({
64
- clientLogo = imageMap.campx,
65
- username,
66
- profileIcon,
67
- permissions,
68
- userBoxActions = [],
69
- cogWheelMenu = [],
70
- }: AppHeaderProps) {
71
- return (
72
- <StyledHeader>
73
- <Box sx={{ display: 'flex', alignItems: 'center', gap: '10px' }}>
74
- <AppsMenu />
75
- <AppLogo clientLogo={clientLogo} />
76
- </Box>
77
- <Box className="actions">
78
- <FreshDeskHelpButton />
79
- {/* <Notification /> */}
80
- {cogWheelMenu?.length ? <CogWheelMenu menu={cogWheelMenu} /> : null}
81
- <UserBox
82
- username={username}
83
- profileIcon={profileIcon}
84
- actions={userBoxActions}
85
- />
86
- </Box>
87
- </StyledHeader>
88
- )
89
- }
90
-
91
- const AppLogo = ({ clientLogo }) => {
92
- const originSubdomain = window.location.host.split('.')?.slice(-3)[0] ?? 'ums'
93
- const currentApp =
94
- applications.find((item) => item.key === originSubdomain)?.key ?? 'campx'
95
-
96
- return (
97
- <StyledLink to={'/'}>
98
- <StyledLogosWrapper>
99
- <StyledImageWrapper>
100
- <img src={imageMap[currentApp]} />
101
- </StyledImageWrapper>
102
- <Box
103
- sx={{
104
- height: '26px',
105
- width: '2px',
106
- background: 'gray',
107
- }}
108
- ></Box>
109
- <StyledImageWrapper>
110
- {isDevelopment ? (
111
- <Typography variant="h1">Developer</Typography>
112
- ) : (
113
- <img
114
- src={clientLogo}
115
- onError={(e: any) => {
116
- e.target.src = imageMap.campx
117
- }}
118
- />
119
- )}
120
- </StyledImageWrapper>
121
- </StyledLogosWrapper>
122
- </StyledLink>
123
- )
124
- }
1
+ import { Box, styled, Typography } from '@mui/material'
2
+ import { ReactNode } from 'react'
3
+ import { Link } from 'react-router-dom'
4
+ import { isDevelopment } from '../../../constants/isDevelopment'
5
+ import { applications } from './applications'
6
+ import AppsMenu from './AppsMenu'
7
+ import {
8
+ collegex,
9
+ commutex,
10
+ enrollx,
11
+ examx,
12
+ hostelx,
13
+ payx,
14
+ peoplex,
15
+ } from './assets'
16
+
17
+ import CogWheelMenu from './CogWheelMenu'
18
+ import FreshDeskHelpButton from './FreshDeskHelpButton'
19
+ import Notification from './Notification'
20
+ import { StyledHeader, StyledImageWrapper } from './styles'
21
+ import UserBox from './UserBox'
22
+
23
+ const StyledLogosWrapper = styled(Box)(() => ({
24
+ display: 'flex',
25
+ alignItems: 'center',
26
+ gap: '10px',
27
+ padding: '10px',
28
+ transition: 'background ease 0.3s',
29
+ borderRadius: '5px',
30
+ '&:hover': {
31
+ background: 'rgba(0, 0, 0, 0.05)',
32
+ },
33
+ }))
34
+
35
+ const StyledLink = styled(Link)(() => ({
36
+ textDecoration: 'none',
37
+ }))
38
+
39
+ const imageMap = {
40
+ ums: collegex,
41
+ enroll: enrollx,
42
+ exams: examx,
43
+ payments: payx,
44
+ people: peoplex,
45
+ campx: collegex,
46
+ commute: commutex,
47
+ hostel: hostelx,
48
+ }
49
+
50
+ interface AppHeaderProps {
51
+ clientLogo: string
52
+ username: string
53
+ profileIcon: string
54
+ permissions?: any
55
+ userBoxActions: {
56
+ label: ReactNode
57
+ icon?: ReactNode
58
+ onClick: any
59
+ }[]
60
+ cogWheelMenu?: { label: string; path: string }[]
61
+ }
62
+
63
+ export default function AppHeader({
64
+ clientLogo = imageMap.campx,
65
+ username,
66
+ profileIcon,
67
+ permissions,
68
+ userBoxActions = [],
69
+ cogWheelMenu = [],
70
+ }: AppHeaderProps) {
71
+ return (
72
+ <StyledHeader>
73
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: '10px' }}>
74
+ <AppsMenu />
75
+ <AppLogo clientLogo={clientLogo} />
76
+ </Box>
77
+ <Box className="actions">
78
+ <FreshDeskHelpButton />
79
+ {/* <Notification /> */}
80
+ {cogWheelMenu?.length ? <CogWheelMenu menu={cogWheelMenu} /> : null}
81
+ <UserBox
82
+ username={username}
83
+ profileIcon={profileIcon}
84
+ actions={userBoxActions}
85
+ />
86
+ </Box>
87
+ </StyledHeader>
88
+ )
89
+ }
90
+
91
+ const AppLogo = ({ clientLogo }) => {
92
+ const originSubdomain = window.location.host.split('.')?.slice(-3)[0] ?? 'ums'
93
+ const currentApp =
94
+ applications.find((item) => item.key === originSubdomain)?.key ?? 'campx'
95
+
96
+ return (
97
+ <StyledLink to={'/'}>
98
+ <StyledLogosWrapper>
99
+ <StyledImageWrapper>
100
+ <img src={imageMap[currentApp]} />
101
+ </StyledImageWrapper>
102
+ <Box
103
+ sx={{
104
+ height: '26px',
105
+ width: '2px',
106
+ background: 'gray',
107
+ }}
108
+ ></Box>
109
+ <StyledImageWrapper>
110
+ {isDevelopment ? (
111
+ <Typography variant="h1">Developer</Typography>
112
+ ) : (
113
+ <img
114
+ src={clientLogo}
115
+ onError={(e: any) => {
116
+ e.target.src = imageMap.campx
117
+ }}
118
+ />
119
+ )}
120
+ </StyledImageWrapper>
121
+ </StyledLogosWrapper>
122
+ </StyledLink>
123
+ )
124
+ }
@@ -1,92 +1,92 @@
1
- import { Box, Menu, Typography } from '@mui/material'
2
- import { useState } from 'react'
3
- import { applications } from './applications'
4
- import { AppsIcon } from './icons'
5
- import {
6
- StyledDescription,
7
- StyledIconButton,
8
- StyledMenuItem,
9
- StyledMenuItemContainer,
10
- StyledLink,
11
- } from './styles'
12
-
13
- const AppsMenu = () => {
14
- const [anchorEl, setAnchorEl] = useState<any>(null)
15
- const open = Boolean(anchorEl)
16
-
17
- const handleClick = (event) => {
18
- setAnchorEl(event.currentTarget)
19
- }
20
-
21
- const handleClose = () => {
22
- setAnchorEl(null)
23
- }
24
-
25
- return (
26
- <>
27
- <StyledIconButton onClick={handleClick}>
28
- <AppsIcon />
29
- </StyledIconButton>
30
-
31
- <Menu
32
- transitionDuration={150}
33
- elevation={3}
34
- id="basic-menu"
35
- anchorEl={anchorEl}
36
- open={open}
37
- onClose={handleClose}
38
- anchorOrigin={{
39
- vertical: 'bottom',
40
- horizontal: 'left',
41
- }}
42
- transformOrigin={{
43
- vertical: 'top',
44
- horizontal: 'left',
45
- }}
46
- sx={{
47
- '& .MuiPaper-root': {
48
- left: '0 !important',
49
- top: '64px !important',
50
- },
51
- }}
52
- >
53
- <Box sx={{ padding: '0.3rem 1rem' }}>
54
- <Typography variant="body2">Switch to</Typography>
55
- </Box>
56
- <Box>
57
- {applications.map((item, index) => (
58
- <StyledLink href={item.path}>
59
- <StyledMenuItemContainer
60
- key={index}
61
- onClick={() => {
62
- window.location.href = item.path
63
- handleClose()
64
- }}
65
- >
66
- <MenuItem data={item} />
67
- </StyledMenuItemContainer>
68
- </StyledLink>
69
- ))}
70
- </Box>
71
- </Menu>
72
- </>
73
- )
74
- }
75
-
76
- export default AppsMenu
77
-
78
- const MenuItem = ({ data }) => {
79
- return (
80
- <StyledMenuItem>
81
- <Box>
82
- <img src={data.icon} style={{ width: '32px', height: '32px' }} />
83
- </Box>
84
- <Box>
85
- <Typography variant="h1" sx={{ marginBottom: '7px' }}>
86
- {data?.title}
87
- </Typography>
88
- <StyledDescription>{data?.description}</StyledDescription>
89
- </Box>
90
- </StyledMenuItem>
91
- )
92
- }
1
+ import { Box, Menu, Typography } from '@mui/material'
2
+ import { useState } from 'react'
3
+ import { applications } from './applications'
4
+ import { AppsIcon } from './icons'
5
+ import {
6
+ StyledDescription,
7
+ StyledIconButton,
8
+ StyledMenuItem,
9
+ StyledMenuItemContainer,
10
+ StyledLink,
11
+ } from './styles'
12
+
13
+ const AppsMenu = () => {
14
+ const [anchorEl, setAnchorEl] = useState<any>(null)
15
+ const open = Boolean(anchorEl)
16
+
17
+ const handleClick = (event) => {
18
+ setAnchorEl(event.currentTarget)
19
+ }
20
+
21
+ const handleClose = () => {
22
+ setAnchorEl(null)
23
+ }
24
+
25
+ return (
26
+ <>
27
+ <StyledIconButton onClick={handleClick}>
28
+ <AppsIcon />
29
+ </StyledIconButton>
30
+
31
+ <Menu
32
+ transitionDuration={150}
33
+ elevation={3}
34
+ id="basic-menu"
35
+ anchorEl={anchorEl}
36
+ open={open}
37
+ onClose={handleClose}
38
+ anchorOrigin={{
39
+ vertical: 'bottom',
40
+ horizontal: 'left',
41
+ }}
42
+ transformOrigin={{
43
+ vertical: 'top',
44
+ horizontal: 'left',
45
+ }}
46
+ sx={{
47
+ '& .MuiPaper-root': {
48
+ left: '0 !important',
49
+ top: '64px !important',
50
+ },
51
+ }}
52
+ >
53
+ <Box sx={{ padding: '0.3rem 1rem' }}>
54
+ <Typography variant="body2">Switch to</Typography>
55
+ </Box>
56
+ <Box>
57
+ {applications.map((item, index) => (
58
+ <StyledLink href={item.path}>
59
+ <StyledMenuItemContainer
60
+ key={index}
61
+ onClick={() => {
62
+ window.location.href = item.path
63
+ handleClose()
64
+ }}
65
+ >
66
+ <MenuItem data={item} />
67
+ </StyledMenuItemContainer>
68
+ </StyledLink>
69
+ ))}
70
+ </Box>
71
+ </Menu>
72
+ </>
73
+ )
74
+ }
75
+
76
+ export default AppsMenu
77
+
78
+ const MenuItem = ({ data }) => {
79
+ return (
80
+ <StyledMenuItem>
81
+ <Box>
82
+ <img src={data.icon} style={{ width: '32px', height: '32px' }} />
83
+ </Box>
84
+ <Box>
85
+ <Typography variant="h1" sx={{ marginBottom: '7px' }}>
86
+ {data?.title}
87
+ </Typography>
88
+ <StyledDescription>{data?.description}</StyledDescription>
89
+ </Box>
90
+ </StyledMenuItem>
91
+ )
92
+ }
@@ -1,33 +1,33 @@
1
- import { SettingsOutlined } from '@mui/icons-material'
2
- import { IconButton } from '@mui/material'
3
- import { useHistory } from '../../../hooks/useRouter'
4
- import MenuButton from '../../MenuButton'
5
-
6
- const CogWheelMenu = ({ menu }) => {
7
- const history = useHistory()
8
-
9
- return (
10
- <MenuButton
11
- anchor={
12
- <IconButton color="secondary">
13
- <SettingsOutlined />
14
- </IconButton>
15
- }
16
- menu={menu?.map((item) => ({
17
- label: item?.label,
18
- onClick: () => {
19
- history.push(item?.path)
20
- },
21
- }))}
22
- menuProps={{
23
- PaperProps: { sx: { top: '64px !important' } },
24
- transformOrigin: {
25
- horizontal: 'center',
26
- vertical: 'bottom',
27
- },
28
- }}
29
- />
30
- )
31
- }
32
-
33
- export default CogWheelMenu
1
+ import { SettingsOutlined } from '@mui/icons-material'
2
+ import { IconButton } from '@mui/material'
3
+ import { useHistory } from '../../../hooks/useRouter'
4
+ import MenuButton from '../../MenuButton'
5
+
6
+ const CogWheelMenu = ({ menu }) => {
7
+ const history = useHistory()
8
+
9
+ return (
10
+ <MenuButton
11
+ anchor={
12
+ <IconButton color="secondary">
13
+ <SettingsOutlined />
14
+ </IconButton>
15
+ }
16
+ menu={menu?.map((item) => ({
17
+ label: item?.label,
18
+ onClick: () => {
19
+ history.push(item?.path)
20
+ },
21
+ }))}
22
+ menuProps={{
23
+ PaperProps: { sx: { top: '64px !important' } },
24
+ transformOrigin: {
25
+ horizontal: 'center',
26
+ vertical: 'bottom',
27
+ },
28
+ }}
29
+ />
30
+ )
31
+ }
32
+
33
+ export default CogWheelMenu
@@ -1,19 +1,19 @@
1
- import { HelpOutline } from '@mui/icons-material'
2
- import { Button, IconButton } from '@mui/material'
3
-
4
- export default function FreshDeskHelpButton() {
5
- const handleOpenFreshDeskWidget = () => {
6
- try {
7
- ;(window as any)?.openFreshDeskWidget()
8
- } catch (error) {
9
- // eslint-disable-next-line no-console
10
- console.error('Error launching Freshdesk')
11
- }
12
- }
13
-
14
- return (
15
- <IconButton color="secondary" onClick={handleOpenFreshDeskWidget}>
16
- <HelpOutline />
17
- </IconButton>
18
- )
19
- }
1
+ import { HelpOutline } from '@mui/icons-material'
2
+ import { Button, IconButton } from '@mui/material'
3
+
4
+ export default function FreshDeskHelpButton() {
5
+ const handleOpenFreshDeskWidget = () => {
6
+ try {
7
+ ;(window as any)?.openFreshDeskWidget()
8
+ } catch (error) {
9
+ // eslint-disable-next-line no-console
10
+ console.error('Error launching Freshdesk')
11
+ }
12
+ }
13
+
14
+ return (
15
+ <IconButton color="secondary" onClick={handleOpenFreshDeskWidget}>
16
+ <HelpOutline />
17
+ </IconButton>
18
+ )
19
+ }
@@ -1,13 +1,13 @@
1
- import { IconButton } from '@mui/material'
2
- import { NotificationIcon } from './icons'
3
-
4
- function Notification() {
5
- return (
6
- <>
7
- <IconButton>
8
- <NotificationIcon />
9
- </IconButton>
10
- </>
11
- )
12
- }
13
- export default Notification
1
+ import { IconButton } from '@mui/material'
2
+ import { NotificationIcon } from './icons'
3
+
4
+ function Notification() {
5
+ return (
6
+ <>
7
+ <IconButton>
8
+ <NotificationIcon />
9
+ </IconButton>
10
+ </>
11
+ )
12
+ }
13
+ export default Notification