@campxdev/shared 1.0.4 → 1.1.0

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 +17 -17
  6. package/package.json +82 -82
  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 +67 -67
  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 +94 -94
  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 +126 -126
  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/HelpWidget/HelpWidget.tsx +298 -298
  83. package/src/components/Layout/Header/HelpWidget/styles.tsx +94 -92
  84. package/src/components/Layout/Header/Notification.tsx +13 -13
  85. package/src/components/Layout/Header/UserBox.tsx +90 -90
  86. package/src/components/Layout/Header/applications.ts +90 -90
  87. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  88. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  89. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  90. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  91. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  92. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  93. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  94. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  95. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  96. package/src/components/Layout/Header/assets/index.ts +33 -33
  97. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  98. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  99. package/src/components/Layout/Header/assets/payx.svg +19 -19
  100. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  101. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  102. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  103. package/src/components/Layout/Header/icons.tsx +57 -57
  104. package/src/components/Layout/Header/index.tsx +1 -1
  105. package/src/components/Layout/Header/styles.tsx +98 -98
  106. package/src/components/Layout/Tickets/MyTickets.tsx +74 -74
  107. package/src/components/Layout/Tickets/Services.tsx +6 -6
  108. package/src/components/Layout/Tickets/TicketDetails.tsx +66 -66
  109. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  110. package/src/components/Layout/Tickets/index.tsx +1 -1
  111. package/src/components/Layout/Tickets/styles.tsx +136 -136
  112. package/src/components/LayoutWrapper.tsx +25 -25
  113. package/src/components/LinearProgress.tsx +19 -19
  114. package/src/components/ListItemButton.tsx +95 -95
  115. package/src/components/LoginForm.tsx +105 -103
  116. package/src/components/MediaRow/MediaRow.tsx +69 -69
  117. package/src/components/MediaRow/index.tsx +1 -1
  118. package/src/components/MenuButton.tsx +103 -103
  119. package/src/components/ModalButtons/DialogButton.tsx +88 -88
  120. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  121. package/src/components/ModalButtons/index.tsx +4 -4
  122. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  123. package/src/components/NoDataIllustration/index.tsx +1 -1
  124. package/src/components/PageContent.tsx +17 -17
  125. package/src/components/PageHeader.tsx +52 -52
  126. package/src/components/PageNotFound.tsx +26 -26
  127. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  128. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  129. package/src/components/PopupConfirm/index.tsx +1 -1
  130. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  131. package/src/components/Router.tsx +7 -7
  132. package/src/components/Row/Row.tsx +24 -24
  133. package/src/components/Row/index.tsx +1 -1
  134. package/src/components/SearchBar/SearchBar.tsx +53 -53
  135. package/src/components/SearchBar/index.tsx +1 -1
  136. package/src/components/SideMenuHeader.tsx +29 -29
  137. package/src/components/SideNav.tsx +168 -168
  138. package/src/components/Spinner.tsx +18 -18
  139. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  140. package/src/components/StepsHeader/index.tsx +1 -1
  141. package/src/components/StyledTableContainer.tsx +33 -33
  142. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  143. package/src/components/SwitchButton/index.tsx +1 -1
  144. package/src/components/Table.tsx +42 -42
  145. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  146. package/src/components/TableComponent/Icons/index.tsx +50 -50
  147. package/src/components/TableComponent/ReactTable.tsx +293 -293
  148. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  149. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  150. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  151. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  152. package/src/components/TableComponent/index.tsx +226 -226
  153. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  154. package/src/components/TableComponent/styles.tsx +173 -173
  155. package/src/components/TableComponent/types.ts +57 -57
  156. package/src/components/Tabs/Tabs.tsx +52 -52
  157. package/src/components/Tabs/TabsContainer.tsx +50 -50
  158. package/src/components/Tabs/index.tsx +1 -1
  159. package/src/components/Tabs/styles.tsx +55 -55
  160. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  161. package/src/components/ToastContainer/index.tsx +1 -1
  162. package/src/components/UploadButton/UploadButton.tsx +126 -126
  163. package/src/components/UploadButton/index.tsx +1 -1
  164. package/src/components/UploadButton/types.ts +19 -19
  165. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  166. package/src/components/UploadDocument/index.tsx +1 -1
  167. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  168. package/src/components/UploadFileDialog/index.tsx +1 -1
  169. package/src/components/index.ts +86 -86
  170. package/src/config/axios.ts +74 -74
  171. package/src/config/axiosXTenant.ts +57 -57
  172. package/src/constants/UIConstants.ts +97 -97
  173. package/src/constants/formValidations.ts +6 -6
  174. package/src/constants/index.ts +5 -5
  175. package/src/constants/isDevelopment.ts +3 -3
  176. package/src/constants/permissions.ts +67 -67
  177. package/src/constants/validateMessages.ts +12 -12
  178. package/src/contexts/LoginFormProvider.tsx +39 -39
  179. package/src/contexts/Providers.tsx +60 -59
  180. package/src/contexts/PublicProviders.tsx +30 -30
  181. package/src/contexts/QueryClientProvider.tsx +22 -22
  182. package/src/hooks/index.ts +3 -3
  183. package/src/hooks/useAppInit.ts +33 -33
  184. package/src/hooks/useAuth.ts +96 -92
  185. package/src/hooks/useFetch.ts +53 -53
  186. package/src/hooks/useRouter.ts +31 -31
  187. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  188. package/src/layouts/Components/icons/index.tsx +403 -403
  189. package/src/layouts/Components/styles.tsx +60 -60
  190. package/src/layouts/ComponentsLayout.tsx +3 -3
  191. package/src/permissions/PageWithPermission.tsx +18 -18
  192. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  193. package/src/permissions/ValidateAccess.tsx +18 -18
  194. package/src/permissions/index.ts +2 -3
  195. package/src/react-app-env.d.ts +1 -1
  196. package/src/shared-state/AssetsStore.ts +15 -15
  197. package/src/{permissions → shared-state}/PermissionsStore.ts +352 -352
  198. package/src/shared-state/UserStore.ts +13 -13
  199. package/src/shared-state/index.ts +4 -3
  200. package/src/theme/App.less +3 -3
  201. package/src/theme/MuiThemeProvider.tsx +13 -13
  202. package/src/theme/customCssBaseline.ts +78 -78
  203. package/src/theme/index.css +75 -75
  204. package/src/theme/muiTheme.ts +490 -490
  205. package/src/theme/theme.d.ts +75 -75
  206. package/src/utils/alphabet.ts +23 -23
  207. package/src/utils/arrayPadEnd.ts +3 -3
  208. package/src/utils/formatCurrency.ts +9 -9
  209. package/src/utils/getUrlParams.ts +5 -5
  210. package/src/utils/index.ts +8 -8
  211. package/src/utils/logout.ts +24 -24
  212. package/src/utils/ordinalSuffixOf.ts +14 -14
  213. package/src/utils/romanize.ts +40 -40
  214. package/src/utils/withLocalization.tsx +11 -11
  215. package/src/utils/withRouteWrapper.tsx +25 -25
  216. package/src/utils/withSuspense.tsx +6 -6
  217. package/styled-components.tsx +60 -60
  218. package/todo.md +20 -20
  219. package/tsconfig.json +21 -21
  220. package/src/components/Layout/Header/assets/commuteX.png +0 -0
@@ -1,92 +1,94 @@
1
- import { alpha, Box, Card, Dialog, styled } from '@mui/material'
2
- import { background, contactBg } from '../assets'
3
- // import background from '../../Header/assets/background.png'
4
- export const StyledDialogHeader = styled(Box)(({ theme }) => ({
5
- height: '180px',
6
- backgroundColor: alpha(theme.palette.text.secondary, 0.1),
7
- backgroundImage: `url(${background})`,
8
- backgroundSize: 'cover',
9
- display: 'flex',
10
- alignItems: 'start',
11
- justifyContent: 'flex-end',
12
- padding: '0.6rem 1rem',
13
- }))
14
- export const StyledDialog = styled(Dialog)(() => ({
15
- zIndex: 500,
16
- transition: 'max-height 0.3s ease-in-out',
17
- '& .MuiDialog-container': {
18
- justifyContent: 'flex-end',
19
- alignItems: 'end',
20
-
21
- '& .MuiPaper-root': {
22
- maxWidth: '380px',
23
- },
24
- },
25
- }))
26
- export const StyledCard = styled(Card)(() => ({
27
- display: 'flex',
28
- position: 'absolute',
29
- width: '340px',
30
- justifyContent: 'space-between',
31
- margin: '-30px 20px 0 20px',
32
- padding: '20px 15px',
33
- cursor: 'pointer',
34
- boxShadow: '0px 3px 15px #0000001A',
35
- }))
36
-
37
- export const StyledContactHeader = styled(Box)(({ theme }) => ({
38
- height: '170px',
39
- backgroundColor: alpha(theme.palette.text.secondary, 0.1),
40
- backgroundImage: `url(${contactBg})`,
41
- backgroundSize: 'cover',
42
- display: 'flex',
43
- alignItems: 'start',
44
- justifyContent: 'space-between',
45
- padding: '0.6rem 1rem',
46
- }))
47
-
48
- // export const StyledContact = styled(Dialog)(() => ({
49
- // zIndex: 500,
50
- // height: '950px',
51
- // '& .MuiDialog-container': {
52
- // bottom: 0,
53
- // justifyContent: 'flex-end',
54
- // alignItems: 'end',
55
- // '& .MuiPaper-root': {
56
- // maxWidth: '380px',
57
- // },
58
- // },
59
- // }))
60
-
61
- export const StyledContactCard = styled(Card)(() => ({
62
- minHeight: '50px',
63
- display: 'flex',
64
- justifyContent: 'center',
65
- alignItems: 'center',
66
- padding: '10px',
67
- cursor: 'pointer',
68
- border: '1px solid #0000001A',
69
- backgroundColor: '#cfbdbd1a',
70
- }))
71
-
72
- export const StyledDialogCard = styled(Card)(() => ({
73
- padding: '20px',
74
- boxShadow: '0px 5px 10px #0000001A',
75
- maxHeight: '550px',
76
- overflowY: 'auto',
77
- '&::-webkit-scrollbar': {
78
- width: '0px',
79
- height: '0px',
80
- },
81
- marginTop: '-90px',
82
- marginLeft: '-4px',
83
- position: 'absolute',
84
- }))
85
-
86
- export const StyledContactBoxHeader = styled(Box)(() => ({
87
- marginTop: '40px',
88
- display: 'flex',
89
- alignItems: 'center',
90
- gap: '5px',
91
- cursor: 'pointer',
92
- }))
1
+ import { alpha, Box, Card, Dialog, styled } from '@mui/material'
2
+ import { background, contactBg } from '../assets'
3
+ // import background from '../../Header/assets/background.png'
4
+ export const StyledDialogHeader = styled(Box)(({ theme }) => ({
5
+ height: '180px',
6
+ backgroundColor: alpha(theme.palette.text.secondary, 0.1),
7
+ backgroundImage: `url(${background})`,
8
+ backgroundSize: 'cover',
9
+ display: 'flex',
10
+ alignItems: 'start',
11
+ justifyContent: 'flex-end',
12
+ padding: '0.6rem 1rem',
13
+ }))
14
+ export const StyledDialog = styled(Dialog)(() => ({
15
+ zIndex: 500,
16
+ transition: 'max-height 0.3s ease-in-out',
17
+ '& .MuiDialog-container': {
18
+ justifyContent: 'flex-end',
19
+ alignItems: 'end',
20
+
21
+ '& .MuiPaper-root': {
22
+ maxWidth: '380px',
23
+ },
24
+ },
25
+ }))
26
+ export const StyledCard = styled(Card)(() => ({
27
+ display: 'flex',
28
+ position: 'absolute',
29
+ width: '340px',
30
+ justifyContent: 'space-between',
31
+ margin: '-30px 20px 0 20px',
32
+ padding: '20px 15px',
33
+ cursor: 'pointer',
34
+ boxShadow: '0px 3px 15px #0000001A',
35
+ }))
36
+
37
+ export const StyledContactHeader = styled(Box)(({ theme }) => ({
38
+ height: '170px',
39
+ backgroundColor: alpha(theme.palette.text.secondary, 0.1),
40
+ backgroundImage: `url(${contactBg})`,
41
+ backgroundSize: 'cover',
42
+ display: 'flex',
43
+ alignItems: 'start',
44
+ justifyContent: 'space-between',
45
+ padding: '0.6rem 1rem',
46
+ }))
47
+
48
+ // export const StyledContact = styled(Dialog)(() => ({
49
+ // zIndex: 500,
50
+ // height: '950px',
51
+ // '& .MuiDialog-container': {
52
+ // bottom: 0,
53
+ // justifyContent: 'flex-end',
54
+ // alignItems: 'end',
55
+ // '& .MuiPaper-root': {
56
+ // maxWidth: '380px',
57
+ // },
58
+ // },
59
+ // }))
60
+
61
+ export const StyledContactCard = styled(Card)(() => ({
62
+ minHeight: '50px',
63
+ display: 'flex',
64
+ justifyContent: 'center',
65
+ alignItems: 'center',
66
+ padding: '10px',
67
+ cursor: 'pointer',
68
+ border: '1px solid #0000001A',
69
+ backgroundColor: '#cfbdbd1a',
70
+ }))
71
+
72
+ export const StyledDialogCard = styled(Card)(() => ({
73
+ padding: '20px',
74
+ boxShadow: '0px 5px 10px #0000001A',
75
+ width: '350px',
76
+ margin: 'auto',
77
+ maxHeight: '550px',
78
+ overflowY: 'auto',
79
+ '&::-webkit-scrollbar': {
80
+ width: '0px',
81
+ height: '0px',
82
+ },
83
+ marginTop: '-90px',
84
+ marginLeft: '-4px',
85
+ position: 'absolute',
86
+ }))
87
+
88
+ export const StyledContactBoxHeader = styled(Box)(() => ({
89
+ marginTop: '40px',
90
+ display: 'flex',
91
+ alignItems: 'center',
92
+ gap: '5px',
93
+ cursor: 'pointer',
94
+ }))
@@ -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,90 +1,90 @@
1
- import { Box, Typography } from '@mui/material'
2
- import { ReactNode, useState } from 'react'
3
- import { avatarImage } from '../../../assets/images'
4
- import MenuButton from '../../MenuButton'
5
- import { StyledUser } from './styles'
6
- import logout from '../../../utils/logout'
7
- import ChangePassword from '../../ChangePassword'
8
- import { ExitToAppOutlined, HttpsOutlined } from '@mui/icons-material'
9
- import ConfirmationNumberOutlinedIcon from '@mui/icons-material/ConfirmationNumberOutlined'
10
- import DialogWrapper from '../../DrawerWrapper/DialogWrapper'
11
- import MyTickets from '../Tickets/MyTickets'
12
- export default function UserBox({
13
- username,
14
- profileIcon,
15
- actions,
16
- }: {
17
- username: string
18
- profileIcon: string
19
- actions: { label: ReactNode; icon?: ReactNode; onClick: any }[]
20
- }) {
21
- const [open, setOpen] = useState(false)
22
- const [openTicket, setOpenTicket] = useState(false)
23
- const handleClickOpen = () => {
24
- setOpen(true)
25
- }
26
- const handleClose = (value: string) => {
27
- setOpen(false)
28
- }
29
- const handleTicketOpen = () => {
30
- setOpenTicket(true)
31
- }
32
- const handleTicketClose = () => {
33
- setOpenTicket(false)
34
- }
35
- return (
36
- <>
37
- <MenuButton
38
- anchor={
39
- <Box minWidth={'80px'} textAlign="center">
40
- <StyledUser>
41
- <img
42
- src={profileIcon ?? avatarImage}
43
- style={{
44
- height: '32px',
45
- width: '32px',
46
- objectFit: 'contain',
47
- }}
48
- onError={(e: any) => {
49
- e.target.src = avatarImage
50
- }}
51
- />
52
- <Typography variant="h6">{username}</Typography>
53
- </StyledUser>
54
- </Box>
55
- }
56
- menu={[
57
- ...actions,
58
- {
59
- label: 'My Tickets',
60
- icon: <ConfirmationNumberOutlinedIcon />,
61
- onClick: handleTicketOpen,
62
- },
63
-
64
- {
65
- label: 'Change Password',
66
- icon: <HttpsOutlined />,
67
- onClick: handleClickOpen,
68
- },
69
- {
70
- label: 'Logout',
71
- icon: <ExitToAppOutlined />,
72
- onClick: logout,
73
- },
74
- ]}
75
- menuProps={{
76
- PaperProps: { sx: { top: '64px !important' } },
77
- }}
78
- />
79
- <DialogWrapper
80
- open={openTicket}
81
- title={'All Tickets'}
82
- children={<MyTickets />}
83
- onClose={() => {
84
- handleTicketClose()
85
- }}
86
- />
87
- <ChangePassword open={open} onClose={handleClose} />
88
- </>
89
- )
90
- }
1
+ import { Box, Typography } from '@mui/material'
2
+ import { ReactNode, useState } from 'react'
3
+ import { avatarImage } from '../../../assets/images'
4
+ import MenuButton from '../../MenuButton'
5
+ import { StyledUser } from './styles'
6
+ import logout from '../../../utils/logout'
7
+ import ChangePassword from '../../ChangePassword'
8
+ import { ExitToAppOutlined, HttpsOutlined } from '@mui/icons-material'
9
+ import ConfirmationNumberOutlinedIcon from '@mui/icons-material/ConfirmationNumberOutlined'
10
+ import DialogWrapper from '../../DrawerWrapper/DialogWrapper'
11
+ import MyTickets from '../Tickets/MyTickets'
12
+ export default function UserBox({
13
+ username,
14
+ profileIcon,
15
+ actions,
16
+ }: {
17
+ username: string
18
+ profileIcon: string
19
+ actions: { label: ReactNode; icon?: ReactNode; onClick: any }[]
20
+ }) {
21
+ const [open, setOpen] = useState(false)
22
+ const [openTicket, setOpenTicket] = useState(false)
23
+ const handleClickOpen = () => {
24
+ setOpen(true)
25
+ }
26
+ const handleClose = (value: string) => {
27
+ setOpen(false)
28
+ }
29
+ const handleTicketOpen = () => {
30
+ setOpenTicket(true)
31
+ }
32
+ const handleTicketClose = () => {
33
+ setOpenTicket(false)
34
+ }
35
+ return (
36
+ <>
37
+ <MenuButton
38
+ anchor={
39
+ <Box minWidth={'80px'} textAlign="center">
40
+ <StyledUser>
41
+ <img
42
+ src={profileIcon ?? avatarImage}
43
+ style={{
44
+ height: '32px',
45
+ width: '32px',
46
+ objectFit: 'contain',
47
+ }}
48
+ onError={(e: any) => {
49
+ e.target.src = avatarImage
50
+ }}
51
+ />
52
+ <Typography variant="h6">{username}</Typography>
53
+ </StyledUser>
54
+ </Box>
55
+ }
56
+ menu={[
57
+ ...actions,
58
+ {
59
+ label: 'My Tickets',
60
+ icon: <ConfirmationNumberOutlinedIcon />,
61
+ onClick: handleTicketOpen,
62
+ },
63
+
64
+ {
65
+ label: 'Change Password',
66
+ icon: <HttpsOutlined />,
67
+ onClick: handleClickOpen,
68
+ },
69
+ {
70
+ label: 'Logout',
71
+ icon: <ExitToAppOutlined />,
72
+ onClick: logout,
73
+ },
74
+ ]}
75
+ menuProps={{
76
+ PaperProps: { sx: { top: '64px !important' } },
77
+ }}
78
+ />
79
+ <DialogWrapper
80
+ open={openTicket}
81
+ title={'All Tickets'}
82
+ children={<MyTickets />}
83
+ onClose={() => {
84
+ handleTicketClose()
85
+ }}
86
+ />
87
+ <ChangePassword open={open} onClose={handleClose} />
88
+ </>
89
+ )
90
+ }
@@ -1,90 +1,90 @@
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: 'HostelX',
55
- key: 'hostel',
56
- path: isDevelopment ? origins.hostel.dev : origins.hostel.prod,
57
- icon: hostelSmall,
58
- description: 'Manage Hostels in the Campus',
59
- },
60
- {
61
- title: 'PayX',
62
- key: 'payments',
63
- path: isDevelopment ? origins.payments.dev : origins.payments.prod,
64
- icon: paySmall,
65
- description: 'Manage Payments 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
- path: isDevelopment ? origins.people.dev : origins.people.prod,
79
- icon: peopleSmall,
80
- description: 'Manage People in the Campus',
81
- },
82
- ]
83
- : []),
84
- // {
85
- // title: 'EnrollX',
86
- // path: '/hostel',
87
- // icon: enrollHeaderLogo,
88
- // // description: 'Manage Admissions in the Campus',
89
- // },
90
- ]
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: 'HostelX',
55
+ key: 'hostel',
56
+ path: isDevelopment ? origins.hostel.dev : origins.hostel.prod,
57
+ icon: hostelSmall,
58
+ description: 'Manage Hostels in the Campus',
59
+ },
60
+ {
61
+ title: 'PayX',
62
+ key: 'payments',
63
+ path: isDevelopment ? origins.payments.dev : origins.payments.prod,
64
+ icon: paySmall,
65
+ description: 'Manage Payments 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
+ path: isDevelopment ? origins.people.dev : origins.people.prod,
79
+ icon: peopleSmall,
80
+ description: 'Manage People in the Campus',
81
+ },
82
+ ]
83
+ : []),
84
+ // {
85
+ // title: 'EnrollX',
86
+ // path: '/hostel',
87
+ // icon: enrollHeaderLogo,
88
+ // // description: 'Manage Admissions in the Campus',
89
+ // },
90
+ ]
@@ -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>
@@ -1,14 +1,14 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="164.636" height="30" viewBox="0 0 164.636 30">
2
- <defs>
3
- <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
4
- <stop offset="0" stop-color="#6a2886"/>
5
- <stop offset="1" stop-color="#8234a4"/>
6
- </linearGradient>
7
- </defs>
8
- <g id="Group_4626" data-name="Group 4626" transform="translate(-154.491 -25)">
9
- <text id="COMMUTEX" transform="translate(186.127 47.5)" font-size="22" font-family="Nexa-XBold, Nexa" font-weight="700"><tspan x="0" y="0">COMMUTEX</tspan></text>
10
- <g id="Group_4542" data-name="Group 4542" transform="translate(1.791 -224.981)">
11
- <path id="Union_49" data-name="Union 49" d="M14.451,30l-3.59-4.941L7.271,30H.073L0,29.947,10.177,15.939H.007V14.064H10.226L3.657,5.031v0L0,0V0H7.312L10.9,4.941,14.492,0h7.2l.073.053L11.584,14.064H21.757v1.875H11.54l6.566,9.03v0L21.763,30v0Z" transform="translate(152.7 249.981)" fill="url(#linear-gradient)"/>
12
- </g>
13
- </g>
14
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="164.636" height="30" viewBox="0 0 164.636 30">
2
+ <defs>
3
+ <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
4
+ <stop offset="0" stop-color="#6a2886"/>
5
+ <stop offset="1" stop-color="#8234a4"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <g id="Group_4626" data-name="Group 4626" transform="translate(-154.491 -25)">
9
+ <text id="COMMUTEX" transform="translate(186.127 47.5)" font-size="22" font-family="Nexa-XBold, Nexa" font-weight="700"><tspan x="0" y="0">COMMUTEX</tspan></text>
10
+ <g id="Group_4542" data-name="Group 4542" transform="translate(1.791 -224.981)">
11
+ <path id="Union_49" data-name="Union 49" d="M14.451,30l-3.59-4.941L7.271,30H.073L0,29.947,10.177,15.939H.007V14.064H10.226L3.657,5.031v0L0,0V0H7.312L10.9,4.941,14.492,0h7.2l.073.053L11.584,14.064H21.757v1.875H11.54l6.566,9.03v0L21.763,30v0Z" transform="translate(152.7 249.981)" fill="url(#linear-gradient)"/>
12
+ </g>
13
+ </g>
14
+ </svg>
@@ -1,11 +1,11 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="232.146" height="320.001" viewBox="0 0 232.146 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="#6a2886"/>
5
- <stop offset="1" stop-color="#8234a4"/>
6
- </linearGradient>
7
- </defs>
8
- <g id="Group_4542" data-name="Group 4542" transform="translate(-152.7 -249.981)">
9
- <path id="Union_49" data-name="Union 49" d="M-15618.083,8500l-38.289-52.705-38.293,52.705h-76.783l-.779-.57,108.556-149.414h-108.484v-20h109.009l-70.071-96.354-.016.02-38.993-53.663.016-.023h77.982l38.293,52.7,38.288-52.7h76.784l.783.566-108.588,149.454h108.513v20h-108.977l70.039,96.317.016-.02,38.993,53.663-.016.023Z" transform="translate(15924.928 -7930.02)" fill="url(#linear-gradient)"/>
10
- </g>
11
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="232.146" height="320.001" viewBox="0 0 232.146 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="#6a2886"/>
5
+ <stop offset="1" stop-color="#8234a4"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <g id="Group_4542" data-name="Group 4542" transform="translate(-152.7 -249.981)">
9
+ <path id="Union_49" data-name="Union 49" d="M-15618.083,8500l-38.289-52.705-38.293,52.705h-76.783l-.779-.57,108.556-149.414h-108.484v-20h109.009l-70.071-96.354-.016.02-38.993-53.663.016-.023h77.982l38.293,52.7,38.288-52.7h76.784l.783.566-108.588,149.454h108.513v20h-108.977l70.039,96.317.016-.02,38.993,53.663-.016.023Z" transform="translate(15924.928 -7930.02)" fill="url(#linear-gradient)"/>
10
+ </g>
11
+ </svg>