@campxdev/shared 1.4.18 → 1.4.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 (214) 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/DropDownButton.tsx +177 -177
  24. package/src/components/DropDownButton/index.tsx +1 -1
  25. package/src/components/DropDownButton/styles.tsx +56 -56
  26. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  27. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  28. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  29. package/src/components/ErrorBoundary/index.tsx +1 -1
  30. package/src/components/ErrorBox.tsx +42 -42
  31. package/src/components/FilterComponents/FilterButton.tsx +40 -39
  32. package/src/components/FilterComponents/SearchBar.tsx +40 -40
  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 +40 -40
  41. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  42. package/src/components/HookForm/FormLabel.tsx +14 -14
  43. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  44. package/src/components/HookForm/MultiSelect.tsx +53 -53
  45. package/src/components/HookForm/RadioGroup.tsx +45 -45
  46. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  47. package/src/components/HookForm/SingleSelect.tsx +46 -46
  48. package/src/components/HookForm/TextField.tsx +40 -40
  49. package/src/components/HookForm/TimePicker.tsx +40 -40
  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 +45 -45
  59. package/src/components/Image/index.tsx +1 -1
  60. package/src/components/ImageUpload.tsx +98 -98
  61. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  62. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  63. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  64. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  65. package/src/components/Input/DatePicker.tsx +69 -69
  66. package/src/components/Input/DateRangePicker.tsx +105 -84
  67. package/src/components/Input/DateTimePicker.tsx +77 -77
  68. package/src/components/Input/FormLabel.tsx +21 -21
  69. package/src/components/Input/MultiCheckbox.tsx +64 -64
  70. package/src/components/Input/MultiSelect.tsx +150 -150
  71. package/src/components/Input/RadioGroup.tsx +104 -104
  72. package/src/components/Input/SingleCheckbox.tsx +78 -78
  73. package/src/components/Input/SingleSelect.tsx +104 -104
  74. package/src/components/Input/TextField.tsx +46 -46
  75. package/src/components/Input/TimePicker.tsx +70 -70
  76. package/src/components/Input/index.ts +26 -26
  77. package/src/components/Input/types.ts +3 -3
  78. package/src/components/JsonPreview.tsx +7 -7
  79. package/src/components/LabelValue.tsx +21 -21
  80. package/src/components/Layout/ChangePassword.tsx +49 -49
  81. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  82. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  83. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  84. package/src/components/Layout/Header/Notification.tsx +13 -13
  85. package/src/components/Layout/Header/UserBox.tsx +81 -81
  86. package/src/components/Layout/Header/applications.ts +91 -91
  87. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  88. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  89. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  90. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  91. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  92. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  93. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  94. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  95. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  96. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  97. package/src/components/Layout/Header/assets/index.ts +33 -33
  98. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  99. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  100. package/src/components/Layout/Header/assets/payx.svg +19 -19
  101. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  102. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  103. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  104. package/src/components/Layout/Header/icons.tsx +57 -57
  105. package/src/components/Layout/Header/index.tsx +1 -1
  106. package/src/components/Layout/Header/styles.tsx +124 -124
  107. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  108. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  109. package/src/components/Layout/SideNav.tsx +168 -168
  110. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  111. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  112. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  113. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  114. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  115. package/src/components/Layout/Tickets/index.tsx +1 -1
  116. package/src/components/Layout/Tickets/services.ts +11 -11
  117. package/src/components/Layout/Tickets/styles.tsx +136 -136
  118. package/src/components/LinearProgress.tsx +19 -19
  119. package/src/components/ListItemButton.tsx +95 -95
  120. package/src/components/LoginForm.tsx +80 -80
  121. package/src/components/MediaRow/MediaRow.tsx +69 -69
  122. package/src/components/MediaRow/index.tsx +1 -1
  123. package/src/components/ModalButtons/DialogButton.tsx +93 -93
  124. package/src/components/ModalButtons/DrawerButton.tsx +84 -84
  125. package/src/components/ModalButtons/index.tsx +4 -4
  126. package/src/components/NoDataIllustration.tsx +32 -32
  127. package/src/components/PageContent.tsx +12 -12
  128. package/src/components/PageHeader.tsx +55 -55
  129. package/src/components/PageNotFound.tsx +26 -26
  130. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  131. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  132. package/src/components/PopupConfirm/index.tsx +1 -1
  133. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  134. package/src/components/Row.tsx +24 -24
  135. package/src/components/Spinner.tsx +18 -18
  136. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  137. package/src/components/StepsHeader/index.tsx +1 -1
  138. package/src/components/StyledTableContainer.tsx +33 -33
  139. package/src/components/SwitchButton.tsx +41 -41
  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 +295 -295
  144. package/src/components/TableComponent/RenderTableBody.tsx +68 -68
  145. package/src/components/TableComponent/Table.tsx +197 -197
  146. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  147. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  148. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  149. package/src/components/TableComponent/index.tsx +1 -1
  150. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  151. package/src/components/TableComponent/styles.tsx +170 -170
  152. package/src/components/TableComponent/types.ts +57 -57
  153. package/src/components/Tabs/Tabs.tsx +52 -52
  154. package/src/components/Tabs/TabsContainer.tsx +50 -50
  155. package/src/components/Tabs/index.tsx +1 -1
  156. package/src/components/Tabs/styles.tsx +55 -55
  157. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  158. package/src/components/ToastContainer/index.tsx +1 -1
  159. package/src/components/UploadButton/UploadButton.tsx +126 -126
  160. package/src/components/UploadButton/index.tsx +1 -1
  161. package/src/components/UploadButton/types.ts +19 -19
  162. package/src/components/UploadDocument.tsx +108 -108
  163. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  164. package/src/components/UploadFileDialog/index.tsx +1 -1
  165. package/src/components/index.ts +89 -89
  166. package/src/config/axios.ts +73 -73
  167. package/src/config/axiosEvaluator.ts +53 -53
  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 +73 -73
  177. package/src/contexts/PublicProviders.tsx +30 -30
  178. package/src/contexts/QueryClientProvider.tsx +22 -22
  179. package/src/hooks/index.ts +3 -3
  180. package/src/hooks/useAuth.ts +96 -96
  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 +74 -74
  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/ValidateAccess.tsx +18 -18
  190. package/src/permissions/index.ts +2 -2
  191. package/src/react-app-env.d.ts +1 -1
  192. package/src/shared-state/AssetsStore.ts +15 -15
  193. package/src/shared-state/PermissionsStore.ts +352 -352
  194. package/src/shared-state/UserStore.ts +13 -13
  195. package/src/shared-state/index.ts +4 -4
  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 +560 -560
  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 +7 -7
  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/withRouteWrapper.tsx +25 -25
  211. package/src/utils/withSuspense.tsx +6 -6
  212. package/styled-components.tsx +60 -60
  213. package/tsconfig.json +21 -21
  214. package/yarn-error.log +0 -109
@@ -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>