@campxdev/shared 0.3.12 → 0.3.13

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 (181) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +15 -15
  3. package/package.json +51 -51
  4. package/src/assets/fonts/avenir/index.ts +2 -2
  5. package/src/assets/fonts/poppins/index.ts +7 -7
  6. package/src/assets/images/index.ts +16 -16
  7. package/src/components/ActionButton.tsx +28 -28
  8. package/src/components/Attachment.tsx +26 -26
  9. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  10. package/src/components/AutocompleteSearch/index.tsx +1 -1
  11. package/src/components/Breadcrumbs.tsx +73 -73
  12. package/src/components/Card.tsx +97 -97
  13. package/src/components/CardsGrid.tsx +28 -28
  14. package/src/components/Chips.tsx +77 -77
  15. package/src/components/Detail.tsx +15 -15
  16. package/src/components/DetailsGrid.tsx +52 -52
  17. package/src/components/DividerHeading.tsx +40 -40
  18. package/src/components/DrawerWrapper/DialogWrapper.tsx +63 -63
  19. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  20. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  21. package/src/components/DropDownButton.tsx +184 -184
  22. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  23. package/src/components/ErrorBoundary/ErrorFallback.tsx +180 -180
  24. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  25. package/src/components/ErrorBoundary/index.tsx +1 -1
  26. package/src/components/ErrorBox.tsx +42 -42
  27. package/src/components/FloatingContainer.tsx +26 -26
  28. package/src/components/FullCalendar/Actions.tsx +162 -162
  29. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  30. package/src/components/FullScreenLoader.tsx +19 -19
  31. package/src/components/HookForm/AutoCompleteSearch.tsx +143 -143
  32. package/src/components/HookForm/DatePicker.tsx +65 -65
  33. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  34. package/src/components/HookForm/FormLabel.tsx +14 -14
  35. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  36. package/src/components/HookForm/MultiSelect.tsx +100 -100
  37. package/src/components/HookForm/RadioGroup.tsx +112 -112
  38. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  39. package/src/components/HookForm/SingleSelect.tsx +93 -93
  40. package/src/components/HookForm/TextField.tsx +74 -74
  41. package/src/components/HookForm/TimePicker.tsx +82 -82
  42. package/src/components/HookForm/index.ts +23 -23
  43. package/src/components/IconButtons/IconButtons.tsx +137 -137
  44. package/src/components/IconButtons/Icons.tsx +268 -268
  45. package/src/components/IconButtons/assets/edit.svg +4 -4
  46. package/src/components/IconButtons/assets/eye.svg +6 -6
  47. package/src/components/IconButtons/assets/trash.svg +7 -7
  48. package/src/components/IconButtons/index.tsx +8 -8
  49. package/src/components/IconLabel.tsx +37 -37
  50. package/src/components/Image/Image.tsx +43 -43
  51. package/src/components/Image/index.tsx +1 -1
  52. package/src/components/ImageUpload.tsx +98 -98
  53. package/src/components/Input/AutoCompleteSearch.tsx +143 -143
  54. package/src/components/Input/DatePicker.tsx +60 -60
  55. package/src/components/Input/DateRangePicker.tsx +131 -131
  56. package/src/components/Input/DateTimePicker.tsx +70 -70
  57. package/src/components/Input/FormLabel.tsx +14 -14
  58. package/src/components/Input/MultiCheckbox.tsx +79 -79
  59. package/src/components/Input/MultiSelect.tsx +52 -52
  60. package/src/components/Input/RadioGroup.tsx +55 -55
  61. package/src/components/Input/SingleCheckbox.tsx +23 -23
  62. package/src/components/Input/SingleSelect.tsx +139 -139
  63. package/src/components/Input/TextField.tsx +50 -50
  64. package/src/components/Input/TimePicker.tsx +82 -82
  65. package/src/components/Input/index.ts +26 -26
  66. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  67. package/src/components/JsonPreview/index.tsx +1 -1
  68. package/src/components/LabelValue/LabelValue.tsx +21 -21
  69. package/src/components/LabelValue/index.tsx +1 -1
  70. package/src/components/Layout/ChangePassword.tsx +49 -49
  71. package/src/components/Layout/Header/AppHeader.tsx +120 -120
  72. package/src/components/Layout/Header/AppsMenu.tsx +85 -85
  73. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  74. package/src/components/Layout/Header/FreshDeskHelpButton.tsx +19 -19
  75. package/src/components/Layout/Header/Notification.tsx +13 -13
  76. package/src/components/Layout/Header/UserBox.tsx +42 -42
  77. package/src/components/Layout/Header/applications.tsx +60 -60
  78. package/src/components/Layout/Header/assets/index.ts +7 -7
  79. package/src/components/Layout/Header/icons.tsx +57 -57
  80. package/src/components/Layout/Header/index.tsx +1 -1
  81. package/src/components/Layout/Header/styles.tsx +91 -91
  82. package/src/components/LinearProgress.tsx +19 -19
  83. package/src/components/LoginForm.tsx +103 -103
  84. package/src/components/MediaRow/MediaRow.tsx +69 -69
  85. package/src/components/MediaRow/index.tsx +1 -1
  86. package/src/components/MenuButton.tsx +103 -103
  87. package/src/components/ModalButtons/DialogButton.tsx +85 -85
  88. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  89. package/src/components/ModalButtons/index.tsx +4 -4
  90. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  91. package/src/components/NoDataIllustration/index.tsx +1 -1
  92. package/src/components/PageContent.tsx +17 -17
  93. package/src/components/PageHeader.tsx +52 -52
  94. package/src/components/PageNotFound.tsx +25 -25
  95. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  96. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  97. package/src/components/PopupConfirm/index.tsx +1 -1
  98. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  99. package/src/components/Row/Row.tsx +24 -24
  100. package/src/components/Row/index.tsx +1 -1
  101. package/src/components/SearchBar/SearchBar.tsx +53 -53
  102. package/src/components/SearchBar/index.tsx +1 -1
  103. package/src/components/Spinner.tsx +18 -18
  104. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  105. package/src/components/StepsHeader/index.tsx +1 -1
  106. package/src/components/Styled/OutlinedIconButton.tsx +7 -7
  107. package/src/components/Styled/index.tsx +1 -1
  108. package/src/components/StyledTableContainer.tsx +33 -33
  109. package/src/components/Swiper/Swiper.tsx +39 -39
  110. package/src/components/Swiper/index.tsx +1 -1
  111. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  112. package/src/components/SwitchButton/index.tsx +1 -1
  113. package/src/components/Table.tsx +42 -42
  114. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  115. package/src/components/TableComponent/Icons/index.tsx +50 -50
  116. package/src/components/TableComponent/ReactTable.tsx +293 -293
  117. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  118. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  119. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  120. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  121. package/src/components/TableComponent/index.tsx +221 -221
  122. package/src/components/TableComponent/react-table-config.d.ts +129 -129
  123. package/src/components/TableComponent/styles.tsx +173 -173
  124. package/src/components/TableComponent/types.ts +57 -57
  125. package/src/components/Tabs/Tabs.tsx +52 -52
  126. package/src/components/Tabs/TabsContainer.tsx +50 -50
  127. package/src/components/Tabs/index.tsx +1 -1
  128. package/src/components/Tabs/styles.tsx +55 -55
  129. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  130. package/src/components/ToastContainer/index.tsx +1 -1
  131. package/src/components/UploadButton/UploadButton.tsx +98 -98
  132. package/src/components/UploadButton/index.tsx +1 -1
  133. package/src/components/UploadButton/types.ts +14 -14
  134. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  135. package/src/components/UploadDocument/index.tsx +1 -1
  136. package/src/components/UploadFileDialog/UploadFileDialog.tsx +240 -240
  137. package/src/components/UploadFileDialog/index.tsx +1 -1
  138. package/src/components/index.ts +67 -67
  139. package/src/config/axios.ts +73 -72
  140. package/src/constants/UIConstants.ts +97 -97
  141. package/src/constants/formValidations.ts +6 -6
  142. package/src/constants/index.ts +5 -5
  143. package/src/constants/isDevelopment.ts +3 -3
  144. package/src/constants/permissions.ts +67 -67
  145. package/src/constants/validateMessages.ts +12 -12
  146. package/src/contexts/LoginFormProvider.tsx +39 -39
  147. package/src/contexts/Providers.tsx +27 -27
  148. package/src/contexts/QueryClientProvider.tsx +22 -22
  149. package/src/hooks/index.ts +3 -3
  150. package/src/hooks/useAuth.ts +77 -77
  151. package/src/hooks/useFetch.ts +53 -53
  152. package/src/hooks/useRouter.ts +31 -31
  153. package/src/layouts/ComponentsLayout.tsx +3 -3
  154. package/src/permissions/PageWithPermission.tsx +18 -18
  155. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  156. package/src/permissions/PermissionsStore.ts +291 -291
  157. package/src/permissions/ValidateAccess.tsx +18 -18
  158. package/src/permissions/index.ts +3 -3
  159. package/src/react-app-env.d.ts +1 -1
  160. package/src/shared-state/AssetsStore.ts +15 -15
  161. package/src/shared-state/UserStore.ts +13 -13
  162. package/src/shared-state/index.ts +3 -3
  163. package/src/theme/App.less +3 -3
  164. package/src/theme/MuiThemeProvider.tsx +13 -13
  165. package/src/theme/customCssBaseline.ts +78 -78
  166. package/src/theme/index.css +75 -75
  167. package/src/theme/muiTheme.ts +516 -516
  168. package/src/theme/theme.d.ts +75 -75
  169. package/src/utils/alphabet.ts +23 -23
  170. package/src/utils/arrayPadEnd.ts +3 -3
  171. package/src/utils/formatCurrency.ts +9 -9
  172. package/src/utils/getUrlParams.ts +5 -5
  173. package/src/utils/index.ts +8 -8
  174. package/src/utils/logout.ts +23 -23
  175. package/src/utils/ordinalSuffixOf.ts +14 -14
  176. package/src/utils/romanize.ts +40 -40
  177. package/src/utils/withLocalization.tsx +11 -11
  178. package/src/utils/withRouteWrapper.tsx +26 -26
  179. package/src/utils/withSuspense.tsx +6 -6
  180. package/styled-components.tsx +60 -60
  181. package/tsconfig.json +21 -21
@@ -1,49 +1,49 @@
1
- import { Button, Stack } from '@mui/material'
2
- import { useForm } from 'react-hook-form'
3
- import { toast } from 'react-toastify'
4
- import { FormTextField } from '..'
5
- import axios, { axiosErrorToast } from '../../config/axios'
6
-
7
- export default function ChangePassword({ close }) {
8
- const { handleSubmit, control } = useForm()
9
-
10
- const onSubmit = async (formData) => {
11
- try {
12
- await axios.post('/auth/change-password', formData)
13
- toast.success('Password Changed Successfully')
14
- } catch (error) {
15
- axiosErrorToast(error)
16
- }
17
- }
18
-
19
- return (
20
- <form onSubmit={handleSubmit(onSubmit)}>
21
- <Stack gap={2}>
22
- <FormTextField
23
- label="Old Password"
24
- control={control}
25
- name="oldPassword"
26
- required
27
- />
28
- <FormTextField
29
- label="New Password"
30
- control={control}
31
- name="newPassword"
32
- required
33
- />
34
- <FormTextField
35
- label="Confirm Password"
36
- control={control}
37
- name="password"
38
- required
39
- />
40
- <Stack>
41
- <Button variant="outlined" onClick={close}>
42
- Cancel
43
- </Button>
44
- <Button type="submit">Submit</Button>
45
- </Stack>
46
- </Stack>
47
- </form>
48
- )
49
- }
1
+ import { Button, Stack } from '@mui/material'
2
+ import { useForm } from 'react-hook-form'
3
+ import { toast } from 'react-toastify'
4
+ import { FormTextField } from '..'
5
+ import axios, { axiosErrorToast } from '../../config/axios'
6
+
7
+ export default function ChangePassword({ close }) {
8
+ const { handleSubmit, control } = useForm()
9
+
10
+ const onSubmit = async (formData) => {
11
+ try {
12
+ await axios.post('/auth/change-password', formData)
13
+ toast.success('Password Changed Successfully')
14
+ } catch (error) {
15
+ axiosErrorToast(error)
16
+ }
17
+ }
18
+
19
+ return (
20
+ <form onSubmit={handleSubmit(onSubmit)}>
21
+ <Stack gap={2}>
22
+ <FormTextField
23
+ label="Old Password"
24
+ control={control}
25
+ name="oldPassword"
26
+ required
27
+ />
28
+ <FormTextField
29
+ label="New Password"
30
+ control={control}
31
+ name="newPassword"
32
+ required
33
+ />
34
+ <FormTextField
35
+ label="Confirm Password"
36
+ control={control}
37
+ name="password"
38
+ required
39
+ />
40
+ <Stack>
41
+ <Button variant="outlined" onClick={close}>
42
+ Cancel
43
+ </Button>
44
+ <Button type="submit">Submit</Button>
45
+ </Stack>
46
+ </Stack>
47
+ </form>
48
+ )
49
+ }
@@ -1,120 +1,120 @@
1
- import {Box, styled, Typography} from '@mui/material'
2
- import {ReactNode} from 'react'
3
- import {Link} from 'react-router-dom'
4
- import {campxLogoPrimary} from '../../../assets/images'
5
- import {isDevelopment} from '../../../constants/isDevelopment'
6
- import {applications} from './applications'
7
- import AppsMenu from './AppsMenu'
8
- import {collegex, enrollx, examx, payx, peoplex} from './assets'
9
- import CogWheelMenu from './CogWheelMenu'
10
- import FreshDeskHelpButton from './FreshDeskHelpButton'
11
- import Notification from './Notification'
12
- import {StyledHeader, StyledImageWrapper} from './styles'
13
- import UserBox from './UserBox'
14
-
15
- const StyledLogosWrapper = styled(Box)(() => ({
16
- display: 'flex',
17
- alignItems: 'center',
18
- gap: '10px',
19
- padding: '10px',
20
- transition: 'background ease 0.3s',
21
- borderRadius: '5px',
22
- '&:hover': {
23
- background: 'rgba(0, 0, 0, 0.05)',
24
- },
25
- }))
26
-
27
- const StyledLink = styled(Link)(() => ({
28
- textDecoration: 'none',
29
- }))
30
-
31
- const imageMap = {
32
- ums: collegex,
33
- enroll: enrollx,
34
- exams: examx,
35
- payments: payx,
36
- peoplex: peoplex,
37
- campx: campxLogoPrimary,
38
- }
39
-
40
- interface AppHeaderProps {
41
- clientLogo: string
42
- username: string
43
- profileIcon: string
44
- permissions?: any
45
- userBoxActions: {
46
- label: ReactNode
47
- icon?: ReactNode
48
- onClick: any
49
- }[]
50
- cogWheelMenu?: {label: string; path: string}[]
51
- }
52
-
53
- export default function AppHeader({
54
- clientLogo = imageMap.campx,
55
- username,
56
- profileIcon,
57
- permissions,
58
- userBoxActions = [],
59
- cogWheelMenu = [],
60
- }: AppHeaderProps) {
61
- return (
62
- <StyledHeader>
63
- <Box sx={{display: 'flex', alignItems: 'center', gap: '10px'}}>
64
- <AppsMenu />
65
- <AppLogo clientLogo={clientLogo} />
66
- </Box>
67
- <Box className='actions'>
68
- <FreshDeskHelpButton />
69
- <Notification />
70
- {cogWheelMenu?.length ? <CogWheelMenu menu={cogWheelMenu} /> : null}
71
- <UserBox
72
- username={username}
73
- profileIcon={profileIcon}
74
- actions={userBoxActions}
75
- />
76
- </Box>
77
- </StyledHeader>
78
- )
79
- }
80
-
81
- const AppLogo = ({clientLogo}) => {
82
- const originSubdomain = window.location.host.split('.')?.slice(-3)[0] ?? 'ums'
83
- const currentApp =
84
- applications.find((item) => item.key === originSubdomain)?.key ?? 'campx'
85
-
86
- console.log('App Name', currentApp)
87
-
88
- return (
89
- <StyledLink to={'/'}>
90
- <StyledLogosWrapper>
91
- <StyledImageWrapper>
92
- {isDevelopment ? (
93
- <img src={imageMap.campx} />
94
- ) : (
95
- <img src={imageMap[currentApp]} />
96
- )}
97
- </StyledImageWrapper>
98
- <Box
99
- sx={{
100
- height: '26px',
101
- width: '2px',
102
- background: 'gray',
103
- }}
104
- ></Box>
105
- <StyledImageWrapper>
106
- {isDevelopment ? (
107
- <Typography variant='h1'>Developer</Typography>
108
- ) : (
109
- <img
110
- src={clientLogo}
111
- onError={(e: any) => {
112
- e.target.src = imageMap.campx
113
- }}
114
- />
115
- )}
116
- </StyledImageWrapper>
117
- </StyledLogosWrapper>
118
- </StyledLink>
119
- )
120
- }
1
+ import {Box, styled, Typography} from '@mui/material'
2
+ import {ReactNode} from 'react'
3
+ import {Link} from 'react-router-dom'
4
+ import {campxLogoPrimary} from '../../../assets/images'
5
+ import {isDevelopment} from '../../../constants/isDevelopment'
6
+ import {applications} from './applications'
7
+ import AppsMenu from './AppsMenu'
8
+ import {collegex, enrollx, examx, payx, peoplex} from './assets'
9
+ import CogWheelMenu from './CogWheelMenu'
10
+ import FreshDeskHelpButton from './FreshDeskHelpButton'
11
+ import Notification from './Notification'
12
+ import {StyledHeader, StyledImageWrapper} from './styles'
13
+ import UserBox from './UserBox'
14
+
15
+ const StyledLogosWrapper = styled(Box)(() => ({
16
+ display: 'flex',
17
+ alignItems: 'center',
18
+ gap: '10px',
19
+ padding: '10px',
20
+ transition: 'background ease 0.3s',
21
+ borderRadius: '5px',
22
+ '&:hover': {
23
+ background: 'rgba(0, 0, 0, 0.05)',
24
+ },
25
+ }))
26
+
27
+ const StyledLink = styled(Link)(() => ({
28
+ textDecoration: 'none',
29
+ }))
30
+
31
+ const imageMap = {
32
+ ums: collegex,
33
+ enroll: enrollx,
34
+ exams: examx,
35
+ payments: payx,
36
+ peoplex: peoplex,
37
+ campx: campxLogoPrimary,
38
+ }
39
+
40
+ interface AppHeaderProps {
41
+ clientLogo: string
42
+ username: string
43
+ profileIcon: string
44
+ permissions?: any
45
+ userBoxActions: {
46
+ label: ReactNode
47
+ icon?: ReactNode
48
+ onClick: any
49
+ }[]
50
+ cogWheelMenu?: {label: string; path: string}[]
51
+ }
52
+
53
+ export default function AppHeader({
54
+ clientLogo = imageMap.campx,
55
+ username,
56
+ profileIcon,
57
+ permissions,
58
+ userBoxActions = [],
59
+ cogWheelMenu = [],
60
+ }: AppHeaderProps) {
61
+ return (
62
+ <StyledHeader>
63
+ <Box sx={{display: 'flex', alignItems: 'center', gap: '10px'}}>
64
+ <AppsMenu />
65
+ <AppLogo clientLogo={clientLogo} />
66
+ </Box>
67
+ <Box className='actions'>
68
+ <FreshDeskHelpButton />
69
+ <Notification />
70
+ {cogWheelMenu?.length ? <CogWheelMenu menu={cogWheelMenu} /> : null}
71
+ <UserBox
72
+ username={username}
73
+ profileIcon={profileIcon}
74
+ actions={userBoxActions}
75
+ />
76
+ </Box>
77
+ </StyledHeader>
78
+ )
79
+ }
80
+
81
+ const AppLogo = ({clientLogo}) => {
82
+ const originSubdomain = window.location.host.split('.')?.slice(-3)[0] ?? 'ums'
83
+ const currentApp =
84
+ applications.find((item) => item.key === originSubdomain)?.key ?? 'campx'
85
+
86
+ console.log('App Name', currentApp)
87
+
88
+ return (
89
+ <StyledLink to={'/'}>
90
+ <StyledLogosWrapper>
91
+ <StyledImageWrapper>
92
+ {isDevelopment ? (
93
+ <img src={imageMap.campx} />
94
+ ) : (
95
+ <img src={imageMap[currentApp]} />
96
+ )}
97
+ </StyledImageWrapper>
98
+ <Box
99
+ sx={{
100
+ height: '26px',
101
+ width: '2px',
102
+ background: 'gray',
103
+ }}
104
+ ></Box>
105
+ <StyledImageWrapper>
106
+ {isDevelopment ? (
107
+ <Typography variant='h1'>Developer</Typography>
108
+ ) : (
109
+ <img
110
+ src={clientLogo}
111
+ onError={(e: any) => {
112
+ e.target.src = imageMap.campx
113
+ }}
114
+ />
115
+ )}
116
+ </StyledImageWrapper>
117
+ </StyledLogosWrapper>
118
+ </StyledLink>
119
+ )
120
+ }
@@ -1,85 +1,85 @@
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
- } from './styles'
11
-
12
- const AppsMenu = () => {
13
- const [anchorEl, setAnchorEl] = useState<any>(null)
14
- const open = Boolean(anchorEl)
15
-
16
- const handleClick = (event) => {
17
- setAnchorEl(event.currentTarget)
18
- }
19
-
20
- const handleClose = () => {
21
- setAnchorEl(null)
22
- }
23
-
24
- return (
25
- <>
26
- <StyledIconButton onClick={handleClick}>
27
- <AppsIcon />
28
- </StyledIconButton>
29
-
30
- <Menu
31
- transitionDuration={150}
32
- elevation={3}
33
- id='basic-menu'
34
- anchorEl={anchorEl}
35
- open={open}
36
- onClose={handleClose}
37
- anchorOrigin={{
38
- vertical: 'bottom',
39
- horizontal: 'left',
40
- }}
41
- transformOrigin={{
42
- vertical: 'top',
43
- horizontal: 'left',
44
- }}
45
- sx={{
46
- '& .MuiPaper-root': {
47
- left: '0 !important',
48
- top: '64px !important',
49
- },
50
- }}
51
- >
52
- <Box sx={{padding: '0.3rem 1rem'}}>
53
- <Typography variant='body2'>Switch to</Typography>
54
- </Box>
55
- <Box>
56
- {applications.map((item, index) => (
57
- <StyledMenuItemContainer
58
- key={index}
59
- onClick={() => {
60
- window.location.href = item.path
61
- handleClose()
62
- }}
63
- >
64
- <MenuItem data={item} />
65
- </StyledMenuItemContainer>
66
- ))}
67
- </Box>
68
- </Menu>
69
- </>
70
- )
71
- }
72
-
73
- export default AppsMenu
74
-
75
- const MenuItem = ({data}) => {
76
- return (
77
- <StyledMenuItem>
78
- <Box height={'20px'}>{data.icon}</Box>
79
- <Box>
80
- <Typography variant='h1'>{data?.title}</Typography>
81
- <StyledDescription>{data?.description}</StyledDescription>
82
- </Box>
83
- </StyledMenuItem>
84
- )
85
- }
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
+ } from './styles'
11
+
12
+ const AppsMenu = () => {
13
+ const [anchorEl, setAnchorEl] = useState<any>(null)
14
+ const open = Boolean(anchorEl)
15
+
16
+ const handleClick = (event) => {
17
+ setAnchorEl(event.currentTarget)
18
+ }
19
+
20
+ const handleClose = () => {
21
+ setAnchorEl(null)
22
+ }
23
+
24
+ return (
25
+ <>
26
+ <StyledIconButton onClick={handleClick}>
27
+ <AppsIcon />
28
+ </StyledIconButton>
29
+
30
+ <Menu
31
+ transitionDuration={150}
32
+ elevation={3}
33
+ id='basic-menu'
34
+ anchorEl={anchorEl}
35
+ open={open}
36
+ onClose={handleClose}
37
+ anchorOrigin={{
38
+ vertical: 'bottom',
39
+ horizontal: 'left',
40
+ }}
41
+ transformOrigin={{
42
+ vertical: 'top',
43
+ horizontal: 'left',
44
+ }}
45
+ sx={{
46
+ '& .MuiPaper-root': {
47
+ left: '0 !important',
48
+ top: '64px !important',
49
+ },
50
+ }}
51
+ >
52
+ <Box sx={{padding: '0.3rem 1rem'}}>
53
+ <Typography variant='body2'>Switch to</Typography>
54
+ </Box>
55
+ <Box>
56
+ {applications.map((item, index) => (
57
+ <StyledMenuItemContainer
58
+ key={index}
59
+ onClick={() => {
60
+ window.location.href = item.path
61
+ handleClose()
62
+ }}
63
+ >
64
+ <MenuItem data={item} />
65
+ </StyledMenuItemContainer>
66
+ ))}
67
+ </Box>
68
+ </Menu>
69
+ </>
70
+ )
71
+ }
72
+
73
+ export default AppsMenu
74
+
75
+ const MenuItem = ({data}) => {
76
+ return (
77
+ <StyledMenuItem>
78
+ <Box height={'20px'}>{data.icon}</Box>
79
+ <Box>
80
+ <Typography variant='h1'>{data?.title}</Typography>
81
+ <StyledDescription>{data?.description}</StyledDescription>
82
+ </Box>
83
+ </StyledMenuItem>
84
+ )
85
+ }
@@ -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