@campxdev/shared 1.4.19 → 1.4.21

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 (216) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +18 -18
  3. package/package.json +84 -84
  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 +17 -17
  7. package/src/assets/images/unauth.svg +92 -92
  8. package/src/components/ActionButton.tsx +20 -20
  9. package/src/components/Attachment.tsx +26 -26
  10. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  11. package/src/components/AutocompleteSearch/index.tsx +1 -1
  12. package/src/components/Breadcrumbs.tsx +72 -72
  13. package/src/components/Card.tsx +98 -98
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +123 -123
  16. package/src/components/Chips.tsx +81 -81
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +41 -41
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton/AnchorElement.tsx +44 -0
  24. package/src/components/DropDownButton/DropDownButton.tsx +175 -177
  25. package/src/components/DropDownButton/DropdownMenuItem.tsx +100 -0
  26. package/src/components/DropDownButton/index.tsx +1 -1
  27. package/src/components/DropDownButton/styles.tsx +59 -56
  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/FilterComponents/FilterButton.tsx +40 -40
  34. package/src/components/FilterComponents/SearchBar.tsx +40 -40
  35. package/src/components/FloatingContainer.tsx +33 -33
  36. package/src/components/Form/Form.tsx +156 -156
  37. package/src/components/Form/RenderForm.tsx +188 -188
  38. package/src/components/FullCalendar/Actions.tsx +162 -162
  39. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  40. package/src/components/FullScreenLoader.tsx +19 -19
  41. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  42. package/src/components/HookForm/DatePicker.tsx +40 -40
  43. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  44. package/src/components/HookForm/FormLabel.tsx +14 -14
  45. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  46. package/src/components/HookForm/MultiSelect.tsx +53 -53
  47. package/src/components/HookForm/RadioGroup.tsx +45 -45
  48. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  49. package/src/components/HookForm/SingleSelect.tsx +46 -46
  50. package/src/components/HookForm/TextField.tsx +40 -40
  51. package/src/components/HookForm/TimePicker.tsx +40 -40
  52. package/src/components/HookForm/index.ts +23 -23
  53. package/src/components/IconButtons/IconButtons.tsx +137 -137
  54. package/src/components/IconButtons/Icons.tsx +268 -268
  55. package/src/components/IconButtons/assets/edit.svg +4 -4
  56. package/src/components/IconButtons/assets/eye.svg +6 -6
  57. package/src/components/IconButtons/assets/trash.svg +7 -7
  58. package/src/components/IconButtons/index.tsx +8 -8
  59. package/src/components/IconLabel.tsx +37 -37
  60. package/src/components/Image/Image.tsx +45 -45
  61. package/src/components/Image/index.tsx +1 -1
  62. package/src/components/ImageUpload.tsx +98 -98
  63. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  64. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  65. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  66. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  67. package/src/components/Input/DatePicker.tsx +69 -69
  68. package/src/components/Input/DateRangePicker.tsx +105 -105
  69. package/src/components/Input/DateTimePicker.tsx +77 -77
  70. package/src/components/Input/FormLabel.tsx +21 -21
  71. package/src/components/Input/MultiCheckbox.tsx +64 -64
  72. package/src/components/Input/MultiSelect.tsx +150 -150
  73. package/src/components/Input/RadioGroup.tsx +104 -104
  74. package/src/components/Input/SingleCheckbox.tsx +78 -78
  75. package/src/components/Input/SingleSelect.tsx +104 -104
  76. package/src/components/Input/TextField.tsx +46 -46
  77. package/src/components/Input/TimePicker.tsx +70 -70
  78. package/src/components/Input/index.ts +26 -26
  79. package/src/components/Input/types.ts +3 -3
  80. package/src/components/JsonPreview.tsx +7 -7
  81. package/src/components/LabelValue.tsx +21 -21
  82. package/src/components/Layout/ChangePassword.tsx +49 -49
  83. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  84. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  85. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  86. package/src/components/Layout/Header/Notification.tsx +13 -13
  87. package/src/components/Layout/Header/UserBox.tsx +81 -81
  88. package/src/components/Layout/Header/applications.ts +91 -91
  89. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  90. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  91. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  92. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  93. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  94. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  95. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  96. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  97. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  98. package/src/components/Layout/Header/assets/index.ts +33 -33
  99. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  100. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  101. package/src/components/Layout/Header/assets/payx.svg +19 -19
  102. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  103. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  104. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  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 +124 -124
  108. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  109. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  110. package/src/components/Layout/SideNav.tsx +168 -168
  111. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  112. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  113. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  114. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  115. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  116. package/src/components/Layout/Tickets/index.tsx +1 -1
  117. package/src/components/Layout/Tickets/services.ts +11 -11
  118. package/src/components/Layout/Tickets/styles.tsx +136 -136
  119. package/src/components/LinearProgress.tsx +19 -19
  120. package/src/components/ListItemButton.tsx +95 -95
  121. package/src/components/LoginForm.tsx +80 -80
  122. package/src/components/MediaRow/MediaRow.tsx +69 -69
  123. package/src/components/MediaRow/index.tsx +1 -1
  124. package/src/components/ModalButtons/DialogButton.tsx +121 -93
  125. package/src/components/ModalButtons/DrawerButton.tsx +113 -84
  126. package/src/components/ModalButtons/index.tsx +4 -4
  127. package/src/components/NoDataIllustration.tsx +32 -32
  128. package/src/components/PageContent.tsx +12 -12
  129. package/src/components/PageHeader.tsx +55 -55
  130. package/src/components/PageNotFound.tsx +26 -26
  131. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  132. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  133. package/src/components/PopupConfirm/index.tsx +1 -1
  134. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  135. package/src/components/Row.tsx +24 -24
  136. package/src/components/Spinner.tsx +18 -18
  137. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  138. package/src/components/StepsHeader/index.tsx +1 -1
  139. package/src/components/StyledTableContainer.tsx +33 -33
  140. package/src/components/SwitchButton.tsx +41 -41
  141. package/src/components/Table.tsx +42 -42
  142. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  143. package/src/components/TableComponent/Icons/index.tsx +50 -50
  144. package/src/components/TableComponent/ReactTable.tsx +295 -295
  145. package/src/components/TableComponent/RenderTableBody.tsx +68 -68
  146. package/src/components/TableComponent/Table.tsx +197 -197
  147. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  148. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  149. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  150. package/src/components/TableComponent/index.tsx +1 -1
  151. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  152. package/src/components/TableComponent/styles.tsx +170 -170
  153. package/src/components/TableComponent/types.ts +57 -57
  154. package/src/components/Tabs/Tabs.tsx +52 -52
  155. package/src/components/Tabs/TabsContainer.tsx +50 -50
  156. package/src/components/Tabs/index.tsx +1 -1
  157. package/src/components/Tabs/styles.tsx +55 -55
  158. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  159. package/src/components/ToastContainer/index.tsx +1 -1
  160. package/src/components/UploadButton/UploadButton.tsx +126 -126
  161. package/src/components/UploadButton/index.tsx +1 -1
  162. package/src/components/UploadButton/types.ts +19 -19
  163. package/src/components/UploadDocument.tsx +108 -108
  164. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  165. package/src/components/UploadFileDialog/index.tsx +1 -1
  166. package/src/components/index.ts +89 -89
  167. package/src/config/axios.ts +73 -73
  168. package/src/config/axiosEvaluator.ts +53 -53
  169. package/src/config/axiosXTenant.ts +57 -57
  170. package/src/constants/UIConstants.ts +97 -97
  171. package/src/constants/formValidations.ts +6 -6
  172. package/src/constants/index.ts +5 -5
  173. package/src/constants/isDevelopment.ts +3 -3
  174. package/src/constants/permissions.ts +67 -67
  175. package/src/constants/validateMessages.ts +12 -12
  176. package/src/contexts/LoginFormProvider.tsx +39 -39
  177. package/src/contexts/Providers.tsx +73 -73
  178. package/src/contexts/PublicProviders.tsx +30 -30
  179. package/src/contexts/QueryClientProvider.tsx +22 -22
  180. package/src/hooks/index.ts +3 -3
  181. package/src/hooks/useAuth.ts +96 -96
  182. package/src/hooks/useFetch.ts +53 -53
  183. package/src/hooks/useRouter.ts +31 -31
  184. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  185. package/src/layouts/Components/icons/index.tsx +403 -403
  186. package/src/layouts/Components/styles.tsx +74 -74
  187. package/src/layouts/ComponentsLayout.tsx +3 -3
  188. package/src/permissions/PageWithPermission.tsx +18 -18
  189. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  190. package/src/permissions/ValidateAccess.tsx +18 -18
  191. package/src/permissions/index.ts +2 -2
  192. package/src/react-app-env.d.ts +1 -1
  193. package/src/shared-state/AssetsStore.ts +15 -15
  194. package/src/shared-state/PermissionsStore.ts +352 -352
  195. package/src/shared-state/UserStore.ts +13 -13
  196. package/src/shared-state/index.ts +4 -4
  197. package/src/theme/App.less +3 -3
  198. package/src/theme/MuiThemeProvider.tsx +13 -13
  199. package/src/theme/customCssBaseline.ts +78 -78
  200. package/src/theme/index.css +75 -75
  201. package/src/theme/muiTheme.ts +592 -560
  202. package/src/theme/theme.d.ts +75 -75
  203. package/src/utils/alphabet.ts +23 -23
  204. package/src/utils/arrayPadEnd.ts +3 -3
  205. package/src/utils/formatCurrency.ts +9 -9
  206. package/src/utils/getUrlParams.ts +5 -5
  207. package/src/utils/index.ts +7 -7
  208. package/src/utils/logout.ts +24 -24
  209. package/src/utils/ordinalSuffixOf.ts +14 -14
  210. package/src/utils/romanize.ts +40 -40
  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/tsconfig.json +21 -21
  215. package/yarn-error.log +109 -0
  216. package/src/components/Layout/Header/assets/commuteX.png +0 -0
@@ -1,98 +1,98 @@
1
- import { Box, Menu, Typography } from '@mui/material'
2
- import Cookies from 'js-cookie'
3
- import { useState } from 'react'
4
- import { applications } from './applications'
5
- import { AppsIcon } from './icons'
6
- import {
7
- StyledDescription,
8
- StyledIconButton,
9
- StyledMenuItem,
10
- StyledMenuItemContainer,
11
- StyledLink,
12
- } from './styles'
13
-
14
- export const campxTenantKey = Cookies.get('campx_tenant')
15
-
16
- const AppsMenu = () => {
17
- const [anchorEl, setAnchorEl] = useState<any>(null)
18
- const open = Boolean(anchorEl)
19
-
20
- const handleClick = (event) => {
21
- setAnchorEl(event.currentTarget)
22
- }
23
-
24
- const handleClose = () => {
25
- setAnchorEl(null)
26
- }
27
-
28
- return (
29
- <>
30
- <StyledIconButton onClick={handleClick}>
31
- <AppsIcon />
32
- </StyledIconButton>
33
-
34
- <Menu
35
- transitionDuration={150}
36
- elevation={3}
37
- id="basic-menu"
38
- anchorEl={anchorEl}
39
- open={open}
40
- onClose={handleClose}
41
- anchorOrigin={{
42
- vertical: 'bottom',
43
- horizontal: 'left',
44
- }}
45
- transformOrigin={{
46
- vertical: 'top',
47
- horizontal: 'left',
48
- }}
49
- sx={{
50
- '& .MuiPaper-root': {
51
- left: '0 !important',
52
- top: '64px !important',
53
- },
54
- }}
55
- >
56
- <Box sx={{ padding: '0.3rem 1rem' }}>
57
- <Typography variant="body2">Switch to</Typography>
58
- </Box>
59
- <Box>
60
- {applications.map((item, index) => (
61
- <StyledLink
62
- href={item.path + `/${campxTenantKey ?? ''}`}
63
- key={index}
64
- >
65
- <StyledMenuItemContainer
66
- key={index}
67
- onClick={() => {
68
- window.location.href = item.path
69
- handleClose()
70
- }}
71
- >
72
- <MenuItem data={item} />
73
- </StyledMenuItemContainer>
74
- </StyledLink>
75
- ))}
76
- </Box>
77
- </Menu>
78
- </>
79
- )
80
- }
81
-
82
- export default AppsMenu
83
-
84
- const MenuItem = ({ data }) => {
85
- return (
86
- <StyledMenuItem>
87
- <Box>
88
- <img src={data.icon} style={{ width: '32px', height: '32px' }} />
89
- </Box>
90
- <Box>
91
- <Typography variant="h1" sx={{ marginBottom: '7px' }}>
92
- {data?.title}
93
- </Typography>
94
- <StyledDescription>{data?.description}</StyledDescription>
95
- </Box>
96
- </StyledMenuItem>
97
- )
98
- }
1
+ import { Box, Menu, Typography } from '@mui/material'
2
+ import Cookies from 'js-cookie'
3
+ import { useState } from 'react'
4
+ import { applications } from './applications'
5
+ import { AppsIcon } from './icons'
6
+ import {
7
+ StyledDescription,
8
+ StyledIconButton,
9
+ StyledMenuItem,
10
+ StyledMenuItemContainer,
11
+ StyledLink,
12
+ } from './styles'
13
+
14
+ export const campxTenantKey = Cookies.get('campx_tenant')
15
+
16
+ const AppsMenu = () => {
17
+ const [anchorEl, setAnchorEl] = useState<any>(null)
18
+ const open = Boolean(anchorEl)
19
+
20
+ const handleClick = (event) => {
21
+ setAnchorEl(event.currentTarget)
22
+ }
23
+
24
+ const handleClose = () => {
25
+ setAnchorEl(null)
26
+ }
27
+
28
+ return (
29
+ <>
30
+ <StyledIconButton onClick={handleClick}>
31
+ <AppsIcon />
32
+ </StyledIconButton>
33
+
34
+ <Menu
35
+ transitionDuration={150}
36
+ elevation={3}
37
+ id="basic-menu"
38
+ anchorEl={anchorEl}
39
+ open={open}
40
+ onClose={handleClose}
41
+ anchorOrigin={{
42
+ vertical: 'bottom',
43
+ horizontal: 'left',
44
+ }}
45
+ transformOrigin={{
46
+ vertical: 'top',
47
+ horizontal: 'left',
48
+ }}
49
+ sx={{
50
+ '& .MuiPaper-root': {
51
+ left: '0 !important',
52
+ top: '64px !important',
53
+ },
54
+ }}
55
+ >
56
+ <Box sx={{ padding: '0.3rem 1rem' }}>
57
+ <Typography variant="body2">Switch to</Typography>
58
+ </Box>
59
+ <Box>
60
+ {applications.map((item, index) => (
61
+ <StyledLink
62
+ href={item.path + `/${campxTenantKey ?? ''}`}
63
+ key={index}
64
+ >
65
+ <StyledMenuItemContainer
66
+ key={index}
67
+ onClick={() => {
68
+ window.location.href = item.path
69
+ handleClose()
70
+ }}
71
+ >
72
+ <MenuItem data={item} />
73
+ </StyledMenuItemContainer>
74
+ </StyledLink>
75
+ ))}
76
+ </Box>
77
+ </Menu>
78
+ </>
79
+ )
80
+ }
81
+
82
+ export default AppsMenu
83
+
84
+ const MenuItem = ({ data }) => {
85
+ return (
86
+ <StyledMenuItem>
87
+ <Box>
88
+ <img src={data.icon} style={{ width: '32px', height: '32px' }} />
89
+ </Box>
90
+ <Box>
91
+ <Typography variant="h1" sx={{ marginBottom: '7px' }}>
92
+ {data?.title}
93
+ </Typography>
94
+ <StyledDescription>{data?.description}</StyledDescription>
95
+ </Box>
96
+ </StyledMenuItem>
97
+ )
98
+ }
@@ -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 DropDownButton from '../../DropDownButton/DropDownButton'
5
-
6
- const CogWheelMenu = ({ menu }) => {
7
- const history = useHistory()
8
-
9
- return (
10
- <DropDownButton
11
- anchor={({ open }) => (
12
- <IconButton color="secondary" onClick={open}>
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: 'top',
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 DropDownButton from '../../DropDownButton/DropDownButton'
5
+
6
+ const CogWheelMenu = ({ menu }) => {
7
+ const history = useHistory()
8
+
9
+ return (
10
+ <DropDownButton
11
+ anchor={({ open }) => (
12
+ <IconButton color="secondary" onClick={open}>
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: 'top',
27
+ },
28
+ }}
29
+ />
30
+ )
31
+ }
32
+
33
+ export default CogWheelMenu
@@ -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
@@ -1,81 +1,81 @@
1
- import { ExitToAppOutlined, HttpsOutlined } from '@mui/icons-material'
2
- import ConfirmationNumberOutlinedIcon from '@mui/icons-material/ConfirmationNumberOutlined'
3
- import { ReactNode } from 'react'
4
- import logout from '../../../utils/logout'
5
- import ChangePassword from '../../ChangePassword'
6
- import DropDownButton from '../../DropDownButton/DropDownButton'
7
- import { DialogButton } from '../../ModalButtons'
8
- import MyTickets from '../Tickets/MyTickets'
9
- import { StyledAvatar } from './styles'
10
-
11
- const getStartingLetters = (text: string) => {
12
- if (!text) return ''
13
- return text
14
- .split(' ')
15
- ?.map((w) => w[0])
16
- ?.join('')
17
- }
18
-
19
- export default function UserBox({
20
- fullName,
21
- actions,
22
- }: {
23
- fullName: string
24
- actions: { label: ReactNode; icon?: ReactNode; onClick: any }[]
25
- }) {
26
- return (
27
- <>
28
- <DropDownButton
29
- anchor={({ open }) => (
30
- <StyledAvatar onClick={open}>
31
- {getStartingLetters(fullName)}
32
- </StyledAvatar>
33
- )}
34
- menu={[
35
- ...actions,
36
- {
37
- customButton: (
38
- <DialogButton
39
- dialogProps={{
40
- maxWidth: 'xl',
41
- }}
42
- title="My Tickets"
43
- anchor={({ open }) => (
44
- <DropDownButton.MenuItem
45
- onClick={open}
46
- icon={<ConfirmationNumberOutlinedIcon />}
47
- label="My Tickets"
48
- />
49
- )}
50
- content={({ close }) => <MyTickets close={close} />}
51
- />
52
- ),
53
- },
54
- {
55
- customButton: (
56
- <DialogButton
57
- title="Change Password"
58
- anchor={({ open }) => (
59
- <DropDownButton.MenuItem
60
- onClick={open}
61
- icon={<HttpsOutlined />}
62
- label="Change Password"
63
- />
64
- )}
65
- content={({ close }) => <ChangePassword close={close} />}
66
- />
67
- ),
68
- },
69
- {
70
- label: 'Logout',
71
- icon: <ExitToAppOutlined />,
72
- onClick: logout,
73
- },
74
- ]}
75
- menuProps={{
76
- PaperProps: { sx: { top: '64px !important' } },
77
- }}
78
- />
79
- </>
80
- )
81
- }
1
+ import { ExitToAppOutlined, HttpsOutlined } from '@mui/icons-material'
2
+ import ConfirmationNumberOutlinedIcon from '@mui/icons-material/ConfirmationNumberOutlined'
3
+ import { ReactNode } from 'react'
4
+ import logout from '../../../utils/logout'
5
+ import ChangePassword from '../../ChangePassword'
6
+ import DropDownButton from '../../DropDownButton/DropDownButton'
7
+ import { DialogButton } from '../../ModalButtons'
8
+ import MyTickets from '../Tickets/MyTickets'
9
+ import { StyledAvatar } from './styles'
10
+
11
+ const getStartingLetters = (text: string) => {
12
+ if (!text) return ''
13
+ return text
14
+ .split(' ')
15
+ ?.map((w) => w[0])
16
+ ?.join('')
17
+ }
18
+
19
+ export default function UserBox({
20
+ fullName,
21
+ actions,
22
+ }: {
23
+ fullName: string
24
+ actions: { label: ReactNode; icon?: ReactNode; onClick: any }[]
25
+ }) {
26
+ return (
27
+ <>
28
+ <DropDownButton
29
+ anchor={({ open }) => (
30
+ <StyledAvatar onClick={open}>
31
+ {getStartingLetters(fullName)}
32
+ </StyledAvatar>
33
+ )}
34
+ menu={[
35
+ ...actions,
36
+ // {
37
+ // customButton: (
38
+ // <DialogButton
39
+ // dialogProps={{
40
+ // maxWidth: 'xl',
41
+ // }}
42
+ // title="My Tickets"
43
+ // anchor={({ open }) => (
44
+ // <DropDownButton.MenuItem
45
+ // onClick={open}
46
+ // icon={<ConfirmationNumberOutlinedIcon />}
47
+ // label="My Tickets"
48
+ // />
49
+ // )}
50
+ // content={({ close }) => <MyTickets close={close} />}
51
+ // />
52
+ // ),
53
+ // },
54
+ // {
55
+ // customButton: (
56
+ // <DialogButton
57
+ // title="Change Password"
58
+ // anchor={({ open }) => (
59
+ // <DropDownButton.MenuItem
60
+ // onClick={open}
61
+ // icon={<HttpsOutlined />}
62
+ // label="Change Password"
63
+ // />
64
+ // )}
65
+ // content={({ close }) => <ChangePassword close={close} />}
66
+ // />
67
+ // ),
68
+ // },
69
+ {
70
+ label: 'Logout',
71
+ icon: <ExitToAppOutlined />,
72
+ onClick: logout,
73
+ },
74
+ ]}
75
+ menuProps={{
76
+ PaperProps: { sx: { top: '64px !important' } },
77
+ }}
78
+ />
79
+ </>
80
+ )
81
+ }
@@ -1,91 +1,91 @@
1
- import { isDevelopment } from '../../../constants'
2
- import {
3
- campxSquareSmall,
4
- examsSmall,
5
- hostelSmall,
6
- paySmall,
7
- peopleSmall,
8
- commuteSmall,
9
- } from './assets'
10
-
11
- const origins = {
12
- ums: {
13
- dev: 'https://ums.campx.dev',
14
- prod: 'https://ums.campx.in',
15
- },
16
- payments: {
17
- dev: 'https://payments.campx.dev',
18
- prod: 'https://payments.campx.in',
19
- },
20
- exams: {
21
- dev: 'https://exams.campx.dev',
22
- prod: 'https://exams.campx.in',
23
- },
24
- people: {
25
- dev: 'https://people.campx.dev',
26
- prod: 'https://people.campx.in',
27
- },
28
- hostel: {
29
- dev: 'https://hostel.campx.dev',
30
- prod: 'https://hostel.campx.in',
31
- },
32
- commute: {
33
- dev: 'https://commute.campx.dev',
34
- prod: 'https://commute.campx.in',
35
- },
36
- }
37
-
38
- export const applications = [
39
- {
40
- title: 'CollegeX',
41
- path: isDevelopment ? origins.ums.dev : origins.ums.prod,
42
- icon: campxSquareSmall,
43
- key: 'ums',
44
- description: 'Manage Complete Campus Activities',
45
- },
46
- {
47
- title: 'ExamX',
48
- key: 'exams',
49
- path: isDevelopment ? origins.exams.dev : origins.exams.prod,
50
- icon: examsSmall,
51
- description: 'Manage all Examinations in the Campus',
52
- },
53
- {
54
- title: 'PayX',
55
- key: 'payments',
56
- path: isDevelopment ? origins.payments.dev : origins.payments.prod,
57
- icon: paySmall,
58
- description: 'Manage Payments in the Campus',
59
- },
60
- {
61
- title: 'HostelX',
62
- key: 'hostel',
63
- path: isDevelopment ? origins.hostel.dev : origins.hostel.prod,
64
- icon: hostelSmall,
65
- description: 'Manage Hostels in the Campus',
66
- },
67
- {
68
- title: 'CommuteX',
69
- key: 'commute',
70
- path: isDevelopment ? origins.commute.dev : origins.commute.prod,
71
- icon: commuteSmall,
72
- description: 'Manage Commute in the Campus',
73
- },
74
- ...(isDevelopment
75
- ? [
76
- {
77
- title: 'PeopleX',
78
- key: 'people',
79
- path: isDevelopment ? origins.people.dev : origins.people.prod,
80
- icon: peopleSmall,
81
- description: 'Manage People in the Campus',
82
- },
83
- ]
84
- : []),
85
- // {
86
- // title: 'EnrollX',
87
- // path: '/hostel',
88
- // icon: enrollHeaderLogo,
89
- // // description: 'Manage Admissions in the Campus',
90
- // },
91
- ]
1
+ import { isDevelopment } from '../../../constants'
2
+ import {
3
+ campxSquareSmall,
4
+ examsSmall,
5
+ hostelSmall,
6
+ paySmall,
7
+ peopleSmall,
8
+ commuteSmall,
9
+ } from './assets'
10
+
11
+ const origins = {
12
+ ums: {
13
+ dev: 'https://ums.campx.dev',
14
+ prod: 'https://ums.campx.in',
15
+ },
16
+ payments: {
17
+ dev: 'https://payments.campx.dev',
18
+ prod: 'https://payments.campx.in',
19
+ },
20
+ exams: {
21
+ dev: 'https://exams.campx.dev',
22
+ prod: 'https://exams.campx.in',
23
+ },
24
+ people: {
25
+ dev: 'https://people.campx.dev',
26
+ prod: 'https://people.campx.in',
27
+ },
28
+ hostel: {
29
+ dev: 'https://hostel.campx.dev',
30
+ prod: 'https://hostel.campx.in',
31
+ },
32
+ commute: {
33
+ dev: 'https://commute.campx.dev',
34
+ prod: 'https://commute.campx.in',
35
+ },
36
+ }
37
+
38
+ export const applications = [
39
+ {
40
+ title: 'CollegeX',
41
+ path: isDevelopment ? origins.ums.dev : origins.ums.prod,
42
+ icon: campxSquareSmall,
43
+ key: 'ums',
44
+ description: 'Manage Complete Campus Activities',
45
+ },
46
+ {
47
+ title: 'ExamX',
48
+ key: 'exams',
49
+ path: isDevelopment ? origins.exams.dev : origins.exams.prod,
50
+ icon: examsSmall,
51
+ description: 'Manage all Examinations in the Campus',
52
+ },
53
+ {
54
+ title: 'PayX',
55
+ key: 'payments',
56
+ path: isDevelopment ? origins.payments.dev : origins.payments.prod,
57
+ icon: paySmall,
58
+ description: 'Manage Payments in the Campus',
59
+ },
60
+ {
61
+ title: 'HostelX',
62
+ key: 'hostel',
63
+ path: isDevelopment ? origins.hostel.dev : origins.hostel.prod,
64
+ icon: hostelSmall,
65
+ description: 'Manage Hostels in the Campus',
66
+ },
67
+ {
68
+ title: 'CommuteX',
69
+ key: 'commute',
70
+ path: isDevelopment ? origins.commute.dev : origins.commute.prod,
71
+ icon: commuteSmall,
72
+ description: 'Manage Commute in the Campus',
73
+ },
74
+ ...(isDevelopment
75
+ ? [
76
+ {
77
+ title: 'PeopleX',
78
+ key: 'people',
79
+ path: isDevelopment ? origins.people.dev : origins.people.prod,
80
+ icon: peopleSmall,
81
+ description: 'Manage People in the Campus',
82
+ },
83
+ ]
84
+ : []),
85
+ // {
86
+ // title: 'EnrollX',
87
+ // path: '/hostel',
88
+ // icon: enrollHeaderLogo,
89
+ // // description: 'Manage Admissions in the Campus',
90
+ // },
91
+ ]
@@ -1,9 +1,9 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="320" height="320.001" viewBox="0 0 320 320.001">
2
- <defs>
3
- <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
4
- <stop offset="0" stop-color="#596e79"/>
5
- <stop offset="1" stop-color="#7c909b"/>
6
- </linearGradient>
7
- </defs>
8
- <path id="Subtraction_37" data-name="Subtraction 37" d="M2495-5403H2175v-320h320v320Zm-260-260v200h200v-200Z" transform="translate(-2175 5723)" fill="url(#linear-gradient)"/>
9
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="320" height="320.001" viewBox="0 0 320 320.001">
2
+ <defs>
3
+ <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
4
+ <stop offset="0" stop-color="#596e79"/>
5
+ <stop offset="1" stop-color="#7c909b"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <path id="Subtraction_37" data-name="Subtraction 37" d="M2495-5403H2175v-320h320v320Zm-260-260v200h200v-200Z" transform="translate(-2175 5723)" fill="url(#linear-gradient)"/>
9
+ </svg>