@campxdev/shared 1.1.4 → 1.1.6

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 (215) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +17 -17
  3. package/package.json +82 -82
  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 +28 -28
  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 +164 -164
  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.tsx +194 -194
  24. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  25. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  26. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  27. package/src/components/ErrorBoundary/index.tsx +1 -1
  28. package/src/components/ErrorBox.tsx +42 -42
  29. package/src/components/FloatingContainer.tsx +33 -33
  30. package/src/components/Form/Form.tsx +156 -156
  31. package/src/components/Form/RenderForm.tsx +188 -188
  32. package/src/components/FullCalendar/Actions.tsx +162 -162
  33. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  34. package/src/components/FullScreenLoader.tsx +19 -19
  35. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  36. package/src/components/HookForm/DatePicker.tsx +65 -65
  37. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  38. package/src/components/HookForm/FormLabel.tsx +14 -14
  39. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  40. package/src/components/HookForm/MultiSelect.tsx +100 -100
  41. package/src/components/HookForm/RadioGroup.tsx +106 -106
  42. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  43. package/src/components/HookForm/SingleSelect.tsx +94 -94
  44. package/src/components/HookForm/TextField.tsx +74 -74
  45. package/src/components/HookForm/TimePicker.tsx +82 -82
  46. package/src/components/HookForm/index.ts +23 -23
  47. package/src/components/IconButtons/IconButtons.tsx +137 -137
  48. package/src/components/IconButtons/Icons.tsx +268 -268
  49. package/src/components/IconButtons/assets/edit.svg +4 -4
  50. package/src/components/IconButtons/assets/eye.svg +6 -6
  51. package/src/components/IconButtons/assets/trash.svg +7 -7
  52. package/src/components/IconButtons/index.tsx +8 -8
  53. package/src/components/IconLabel.tsx +37 -37
  54. package/src/components/Image/Image.tsx +43 -43
  55. package/src/components/Image/index.tsx +1 -1
  56. package/src/components/ImageUpload.tsx +98 -98
  57. package/src/components/Input/AutoCompleteSearch.tsx +113 -113
  58. package/src/components/Input/DatePicker.tsx +60 -60
  59. package/src/components/Input/DateRangePicker.tsx +131 -131
  60. package/src/components/Input/DateTimePicker.tsx +70 -70
  61. package/src/components/Input/FormLabel.tsx +14 -14
  62. package/src/components/Input/MultiCheckbox.tsx +79 -79
  63. package/src/components/Input/MultiSelect.tsx +52 -52
  64. package/src/components/Input/RadioGroup.tsx +61 -61
  65. package/src/components/Input/SingleCheckbox.tsx +23 -23
  66. package/src/components/Input/SingleSelect.tsx +126 -126
  67. package/src/components/Input/TextField.tsx +50 -50
  68. package/src/components/Input/TimePicker.tsx +82 -82
  69. package/src/components/Input/index.ts +26 -26
  70. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  71. package/src/components/JsonPreview/index.tsx +1 -1
  72. package/src/components/LabelValue/LabelValue.tsx +21 -21
  73. package/src/components/LabelValue/index.tsx +1 -1
  74. package/src/components/Layout/ChangePassword.tsx +49 -49
  75. package/src/components/Layout/Header/AppHeader.tsx +124 -124
  76. package/src/components/Layout/Header/AppsMenu.tsx +92 -92
  77. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  78. package/src/components/Layout/Header/HelpWidget/HelpWidget.tsx +299 -298
  79. package/src/components/Layout/Header/HelpWidget/styles.tsx +94 -94
  80. package/src/components/Layout/Header/Notification.tsx +13 -13
  81. package/src/components/Layout/Header/UserBox.tsx +91 -91
  82. package/src/components/Layout/Header/applications.ts +90 -90
  83. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  84. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  85. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  86. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  87. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  88. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  89. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  90. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  91. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  92. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  93. package/src/components/Layout/Header/assets/index.ts +33 -33
  94. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  95. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  96. package/src/components/Layout/Header/assets/payx.svg +19 -19
  97. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  98. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  99. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  100. package/src/components/Layout/Header/icons.tsx +57 -57
  101. package/src/components/Layout/Header/index.tsx +1 -1
  102. package/src/components/Layout/Header/styles.tsx +98 -98
  103. package/src/components/Layout/Tickets/MyTickets.tsx +76 -74
  104. package/src/components/Layout/Tickets/Services.tsx +6 -6
  105. package/src/components/Layout/Tickets/TicketDetails.tsx +66 -66
  106. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  107. package/src/components/Layout/Tickets/index.tsx +1 -1
  108. package/src/components/Layout/Tickets/styles.tsx +136 -136
  109. package/src/components/LayoutWrapper.tsx +25 -25
  110. package/src/components/LinearProgress.tsx +19 -19
  111. package/src/components/ListItemButton.tsx +95 -95
  112. package/src/components/LoginForm.tsx +105 -105
  113. package/src/components/MediaRow/MediaRow.tsx +69 -69
  114. package/src/components/MediaRow/index.tsx +1 -1
  115. package/src/components/MenuButton.tsx +103 -103
  116. package/src/components/ModalButtons/DialogButton.tsx +88 -88
  117. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  118. package/src/components/ModalButtons/index.tsx +4 -4
  119. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  120. package/src/components/NoDataIllustration/index.tsx +1 -1
  121. package/src/components/PageContent.tsx +17 -17
  122. package/src/components/PageHeader.tsx +52 -52
  123. package/src/components/PageNotFound.tsx +26 -26
  124. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  125. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  126. package/src/components/PopupConfirm/index.tsx +1 -1
  127. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  128. package/src/components/Router.tsx +7 -7
  129. package/src/components/Row/Row.tsx +24 -24
  130. package/src/components/Row/index.tsx +1 -1
  131. package/src/components/SearchBar/SearchBar.tsx +53 -53
  132. package/src/components/SearchBar/index.tsx +1 -1
  133. package/src/components/SideMenuHeader.tsx +29 -29
  134. package/src/components/SideNav.tsx +168 -168
  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/SwitchButton.tsx +41 -41
  140. package/src/components/SwitchButton/index.tsx +1 -1
  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 +293 -293
  145. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  146. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  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 +226 -226
  150. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  151. package/src/components/TableComponent/styles.tsx +173 -173
  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/UploadDocument.tsx +108 -108
  163. package/src/components/UploadDocument/index.tsx +1 -1
  164. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  165. package/src/components/UploadFileDialog/index.tsx +1 -1
  166. package/src/components/index.ts +86 -86
  167. package/src/config/axios.ts +74 -74
  168. package/src/config/axiosXTenant.ts +57 -57
  169. package/src/constants/UIConstants.ts +97 -97
  170. package/src/constants/formValidations.ts +6 -6
  171. package/src/constants/index.ts +5 -5
  172. package/src/constants/isDevelopment.ts +3 -3
  173. package/src/constants/permissions.ts +67 -67
  174. package/src/constants/validateMessages.ts +12 -12
  175. package/src/contexts/LoginFormProvider.tsx +39 -39
  176. package/src/contexts/Providers.tsx +60 -60
  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/useAppInit.ts +33 -33
  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 +60 -60
  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 +490 -490
  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 +8 -8
  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/withLocalization.tsx +11 -11
  212. package/src/utils/withRouteWrapper.tsx +25 -25
  213. package/src/utils/withSuspense.tsx +6 -6
  214. package/styled-components.tsx +60 -60
  215. package/tsconfig.json +21 -21
@@ -1,94 +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
- 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
+ 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,91 +1,91 @@
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
-
13
- export default function UserBox({
14
- username,
15
- profileIcon,
16
- actions,
17
- }: {
18
- username: string
19
- profileIcon: string
20
- actions: { label: ReactNode; icon?: ReactNode; onClick: any }[]
21
- }) {
22
- const [open, setOpen] = useState(false)
23
- const [openTicket, setOpenTicket] = useState(false)
24
- const handleClickOpen = () => {
25
- setOpen(true)
26
- }
27
- const handleClose = (value: string) => {
28
- setOpen(false)
29
- }
30
- const handleTicketOpen = () => {
31
- setOpenTicket(true)
32
- }
33
- const handleTicketClose = () => {
34
- setOpenTicket(false)
35
- }
36
- return (
37
- <>
38
- <MenuButton
39
- anchor={
40
- <Box minWidth={'80px'} textAlign="center">
41
- <StyledUser>
42
- <img
43
- src={profileIcon ?? avatarImage}
44
- style={{
45
- height: '32px',
46
- width: '32px',
47
- objectFit: 'contain',
48
- }}
49
- onError={(e: any) => {
50
- e.target.src = avatarImage
51
- }}
52
- />
53
- <Typography variant="h6">{username}</Typography>
54
- </StyledUser>
55
- </Box>
56
- }
57
- menu={[
58
- ...actions,
59
- // {
60
- // label: 'My Tickets',
61
- // icon: <ConfirmationNumberOutlinedIcon />,
62
- // onClick: handleTicketOpen,
63
- // },
64
-
65
- {
66
- label: 'Change Password',
67
- icon: <HttpsOutlined />,
68
- onClick: handleClickOpen,
69
- },
70
- {
71
- label: 'Logout',
72
- icon: <ExitToAppOutlined />,
73
- onClick: logout,
74
- },
75
- ]}
76
- menuProps={{
77
- PaperProps: { sx: { top: '64px !important' } },
78
- }}
79
- />
80
- <DialogWrapper
81
- open={openTicket}
82
- title={'All Tickets'}
83
- children={<MyTickets />}
84
- onClose={() => {
85
- handleTicketClose()
86
- }}
87
- />
88
- <ChangePassword open={open} onClose={handleClose} />
89
- </>
90
- )
91
- }
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
+
13
+ export default function UserBox({
14
+ username,
15
+ profileIcon,
16
+ actions,
17
+ }: {
18
+ username: string
19
+ profileIcon: string
20
+ actions: { label: ReactNode; icon?: ReactNode; onClick: any }[]
21
+ }) {
22
+ const [open, setOpen] = useState(false)
23
+ const [openTicket, setOpenTicket] = useState(false)
24
+ const handleClickOpen = () => {
25
+ setOpen(true)
26
+ }
27
+ const handleClose = (value: string) => {
28
+ setOpen(false)
29
+ }
30
+ const handleTicketOpen = () => {
31
+ setOpenTicket(true)
32
+ }
33
+ const handleTicketClose = () => {
34
+ setOpenTicket(false)
35
+ }
36
+ return (
37
+ <>
38
+ <MenuButton
39
+ anchor={
40
+ <Box minWidth={'80px'} textAlign="center">
41
+ <StyledUser>
42
+ <img
43
+ src={profileIcon ?? avatarImage}
44
+ style={{
45
+ height: '32px',
46
+ width: '32px',
47
+ objectFit: 'contain',
48
+ }}
49
+ onError={(e: any) => {
50
+ e.target.src = avatarImage
51
+ }}
52
+ />
53
+ <Typography variant="h6">{username}</Typography>
54
+ </StyledUser>
55
+ </Box>
56
+ }
57
+ menu={[
58
+ ...actions,
59
+ // {
60
+ // label: 'My Tickets',
61
+ // icon: <ConfirmationNumberOutlinedIcon />,
62
+ // onClick: handleTicketOpen,
63
+ // },
64
+
65
+ {
66
+ label: 'Change Password',
67
+ icon: <HttpsOutlined />,
68
+ onClick: handleClickOpen,
69
+ },
70
+ {
71
+ label: 'Logout',
72
+ icon: <ExitToAppOutlined />,
73
+ onClick: logout,
74
+ },
75
+ ]}
76
+ menuProps={{
77
+ PaperProps: { sx: { top: '64px !important' } },
78
+ }}
79
+ />
80
+ <DialogWrapper
81
+ open={openTicket}
82
+ title={'All Tickets'}
83
+ children={<MyTickets />}
84
+ onClose={() => {
85
+ handleTicketClose()
86
+ }}
87
+ />
88
+ <ChangePassword open={open} onClose={handleClose} />
89
+ </>
90
+ )
91
+ }
@@ -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: '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
- 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: '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
+ 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>