@campxdev/shared 1.7.11 → 1.7.12

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 (221) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +19 -19
  3. package/package.json +86 -86
  4. package/src/assets/fonts/avenir/index.ts +13 -13
  5. package/src/assets/fonts/poppins/index.ts +18 -18
  6. package/src/assets/images/index.ts +17 -17
  7. package/src/assets/images/unauth.svg +92 -92
  8. package/src/components/ActionButton.tsx +20 -20
  9. package/src/components/Attachment.tsx +26 -26
  10. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  11. package/src/components/AutocompleteSearch/index.tsx +1 -1
  12. package/src/components/Breadcrumbs.tsx +72 -72
  13. package/src/components/Card.tsx +98 -98
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +123 -123
  16. package/src/components/Chips.tsx +81 -81
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +41 -41
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton/AnchorElement.tsx +44 -44
  24. package/src/components/DropDownButton/DropDownButton.tsx +184 -184
  25. package/src/components/DropDownButton/DropdownMenuItem.tsx +110 -110
  26. package/src/components/DropDownButton/index.tsx +1 -1
  27. package/src/components/DropDownButton/styles.tsx +59 -59
  28. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  29. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  30. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  31. package/src/components/ErrorBoundary/index.tsx +1 -1
  32. package/src/components/ErrorBox.tsx +42 -42
  33. package/src/components/FilterComponents/FilterButton.tsx +56 -56
  34. package/src/components/FilterComponents/SearchBar.tsx +45 -45
  35. package/src/components/FloatingContainer.tsx +33 -33
  36. package/src/components/Form/Form.tsx +147 -147
  37. package/src/components/Form/RenderForm.tsx +189 -189
  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 +47 -47
  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 +76 -76
  66. package/src/components/Input/DateRangePicker.tsx +105 -105
  67. package/src/components/Input/DateTimePicker.tsx +84 -84
  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 +77 -77
  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 +112 -112
  82. package/src/components/Layout/Header/AppsMenu.tsx +105 -105
  83. package/src/components/Layout/Header/HeaderActions/CogWheelMenu.tsx +33 -33
  84. package/src/components/Layout/Header/HeaderActions/FreshDeskHelpButton.tsx +24 -24
  85. package/src/components/Layout/Header/HeaderActions/HeaderActions.tsx +18 -18
  86. package/src/components/Layout/Header/HeaderActions/UserBox.tsx +56 -56
  87. package/src/components/Layout/Header/Notification.tsx +13 -13
  88. package/src/components/Layout/Header/applications.ts +103 -103
  89. package/src/components/Layout/Header/assets/campx_square_small.svg +8 -8
  90. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  91. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  92. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  93. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  94. package/src/components/Layout/Header/assets/exams_small.svg +11 -11
  95. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  96. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  97. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  98. package/src/components/Layout/Header/assets/index.ts +35 -35
  99. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  100. package/src/components/Layout/Header/assets/pay_small.svg +15 -15
  101. package/src/components/Layout/Header/assets/payx.svg +19 -19
  102. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  103. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  104. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  105. package/src/components/Layout/Header/icons.tsx +57 -57
  106. package/src/components/Layout/Header/index.tsx +1 -1
  107. package/src/components/Layout/Header/styles.tsx +133 -133
  108. package/src/components/Layout/Helmet.tsx +49 -49
  109. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  110. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  111. package/src/components/Layout/SideNav.tsx +168 -168
  112. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  113. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  114. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  115. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  116. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  117. package/src/components/Layout/Tickets/index.tsx +1 -1
  118. package/src/components/Layout/Tickets/services.ts +11 -11
  119. package/src/components/Layout/Tickets/styles.tsx +136 -136
  120. package/src/components/LinearProgress.tsx +19 -19
  121. package/src/components/ListItemButton.tsx +95 -95
  122. package/src/components/LoginForm.tsx +171 -171
  123. package/src/components/MediaRow/MediaRow.tsx +67 -67
  124. package/src/components/MediaRow/index.tsx +1 -1
  125. package/src/components/ModalButtons/DialogButton.tsx +126 -126
  126. package/src/components/ModalButtons/DrawerButton.tsx +115 -115
  127. package/src/components/ModalButtons/index.tsx +4 -4
  128. package/src/components/NoDataIllustration.tsx +32 -32
  129. package/src/components/PageContent.tsx +12 -12
  130. package/src/components/PageHeader.tsx +55 -55
  131. package/src/components/PageNotFound.tsx +26 -26
  132. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  133. package/src/components/PopupConfirm/PopupConfirm.tsx +67 -67
  134. package/src/components/PopupConfirm/index.tsx +1 -1
  135. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  136. package/src/components/ResetPassword.tsx +107 -107
  137. package/src/components/Row.tsx +24 -24
  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.tsx +41 -41
  143. package/src/components/Table.tsx +42 -42
  144. package/src/components/Tables/BasicTable/Table.tsx +198 -198
  145. package/src/components/Tables/BasicTable/TableFooter.tsx +86 -86
  146. package/src/components/Tables/BasicTable/index.tsx +1 -1
  147. package/src/components/Tables/ReactTable/BatchActionsHeader.tsx +58 -58
  148. package/src/components/Tables/ReactTable/ReactTable.tsx +295 -295
  149. package/src/components/Tables/ReactTable/RenderTableBody.tsx +49 -49
  150. package/src/components/Tables/ReactTable/index.tsx +1 -1
  151. package/src/components/Tables/ReactTable/react-table-config.d.ts +128 -128
  152. package/src/components/Tables/common/NoRecordsFound.tsx +27 -27
  153. package/src/components/Tables/common/TableStats.tsx +22 -22
  154. package/src/components/Tables/common/icons.tsx +50 -50
  155. package/src/components/Tables/common/styles.tsx +170 -170
  156. package/src/components/Tables/common/types.ts +57 -57
  157. package/src/components/Tabs/NavigationTabs.tsx +80 -80
  158. package/src/components/Tabs/Tabs.tsx +53 -53
  159. package/src/components/Tabs/TabsContainer.tsx +50 -50
  160. package/src/components/Tabs/index.tsx +1 -1
  161. package/src/components/Tabs/styles.tsx +55 -55
  162. package/src/components/ToastContainer/ToastContainer.tsx +57 -57
  163. package/src/components/ToastContainer/index.tsx +1 -1
  164. package/src/components/UploadButton/UploadButton.tsx +126 -126
  165. package/src/components/UploadButton/index.tsx +1 -1
  166. package/src/components/UploadButton/types.ts +19 -19
  167. package/src/components/UploadDocument.tsx +108 -108
  168. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  169. package/src/components/UploadFileDialog/index.tsx +1 -1
  170. package/src/components/index.ts +102 -102
  171. package/src/config/axios.ts +73 -73
  172. package/src/config/axiosEvaluator.ts +53 -53
  173. package/src/config/axiosXTenant.ts +57 -57
  174. package/src/constants/UIConstants.ts +97 -97
  175. package/src/constants/formValidations.ts +6 -6
  176. package/src/constants/index.ts +5 -5
  177. package/src/constants/isDevelopment.ts +3 -3
  178. package/src/constants/permissions.ts +67 -67
  179. package/src/constants/validateMessages.ts +12 -12
  180. package/src/contexts/LoginFormProvider.tsx +39 -39
  181. package/src/contexts/Providers.tsx +44 -44
  182. package/src/contexts/PublicProviders.tsx +30 -30
  183. package/src/contexts/QueryClientProvider.tsx +22 -22
  184. package/src/hooks/index.ts +4 -4
  185. package/src/hooks/useAuth.ts +96 -96
  186. package/src/hooks/useFetch.ts +53 -53
  187. package/src/hooks/useFilters.ts +80 -80
  188. package/src/hooks/useRouter.ts +31 -31
  189. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  190. package/src/layouts/Components/icons/index.tsx +403 -403
  191. package/src/layouts/Components/styles.tsx +74 -74
  192. package/src/layouts/ComponentsLayout.tsx +3 -3
  193. package/src/permissions/PageWithPermission.tsx +18 -18
  194. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  195. package/src/permissions/ValidateAccess.tsx +18 -18
  196. package/src/permissions/index.ts +2 -2
  197. package/src/react-app-env.d.ts +1 -1
  198. package/src/shared-state/AssetsStore.ts +15 -15
  199. package/src/shared-state/PermissionsStore.ts +352 -352
  200. package/src/shared-state/UserStore.ts +13 -13
  201. package/src/shared-state/index.ts +4 -4
  202. package/src/theme/App.less +3 -3
  203. package/src/theme/MuiThemeProvider.tsx +18 -18
  204. package/src/theme/customCssBaseline.ts +135 -135
  205. package/src/theme/index.css +28 -28
  206. package/src/theme/muiTheme.ts +595 -595
  207. package/src/theme/theme.d.ts +75 -75
  208. package/src/utils/alphabet.ts +23 -23
  209. package/src/utils/arrayPadEnd.ts +3 -3
  210. package/src/utils/formatCurrency.ts +9 -9
  211. package/src/utils/getUrlParams.ts +5 -5
  212. package/src/utils/index.ts +7 -7
  213. package/src/utils/logout.ts +31 -28
  214. package/src/utils/ordinalSuffixOf.ts +14 -14
  215. package/src/utils/romanize.ts +40 -40
  216. package/src/utils/withRouteWrapper.tsx +25 -25
  217. package/src/utils/withSuspense.tsx +6 -6
  218. package/styled-components.tsx +60 -60
  219. package/tsconfig.json +21 -21
  220. package/yarn-error.log +109 -0
  221. package/src/components/Layout/Header/assets/commuteX.png +0 -0
@@ -1,77 +1,77 @@
1
- import { QueryBuilder } from '@mui/icons-material'
2
- import { InputAdornment, TextFieldProps } from '@mui/material'
3
- import 'flatpickr/dist/flatpickr.css'
4
- import { ReactNode } from 'react'
5
- import Flatpickr, { DateTimePickerProps } from 'react-flatpickr'
6
- import TextField from './TextField'
7
-
8
- export interface ITimePicker {
9
- label?: ReactNode
10
- name?: string
11
- required?: boolean
12
- minTime?: Date | string | number
13
- maxTime?: Date | string | number
14
- value: Date | null
15
- onChange: (value: Date) => void
16
- placeholder?: string
17
- inputProps?: TextFieldProps
18
- size?: 'medium' | 'small'
19
- }
20
-
21
- export default function TimePicker({
22
- name,
23
- label,
24
- required,
25
- minTime,
26
- maxTime,
27
- onChange,
28
- value,
29
- placeholder,
30
- size = 'medium',
31
- ...rest
32
- }: ITimePicker) {
33
- return (
34
- <Flatpickr
35
- options={{
36
- enableTime: true,
37
- noCalendar: true,
38
- dateFormat: 'h:i K',
39
- minTime,
40
- maxTime,
41
- allowInput: true,
42
- }}
43
- onClose={(dates) => {
44
- if (onChange) onChange(dates[0])
45
- }}
46
- onChange={(dates: Date[]) => {
47
- if (onChange) onChange(dates[0])
48
- }}
49
- value={value || null}
50
- render={(
51
- props: Omit<DateTimePickerProps, 'options' | 'render'>,
52
- ref: (node: HTMLInputElement | null) => void,
53
- ) => {
54
- return (
55
- <TextField
56
- size={size}
57
- placeholder={placeholder}
58
- label={label}
59
- name={name}
60
- variant="outlined"
61
- autoComplete="off"
62
- required={required}
63
- inputRef={ref}
64
- InputProps={{
65
- endAdornment: (
66
- <InputAdornment position="end">
67
- <QueryBuilder />
68
- </InputAdornment>
69
- ),
70
- }}
71
- {...rest.inputProps}
72
- />
73
- )
74
- }}
75
- />
76
- )
77
- }
1
+ import { QueryBuilder } from '@mui/icons-material'
2
+ import { InputAdornment, TextFieldProps } from '@mui/material'
3
+ import 'flatpickr/dist/flatpickr.css'
4
+ import { ReactNode } from 'react'
5
+ import Flatpickr, { DateTimePickerProps } from 'react-flatpickr'
6
+ import TextField from './TextField'
7
+
8
+ export interface ITimePicker {
9
+ label?: ReactNode
10
+ name?: string
11
+ required?: boolean
12
+ minTime?: Date | string | number
13
+ maxTime?: Date | string | number
14
+ value: Date | null
15
+ onChange: (value: Date) => void
16
+ placeholder?: string
17
+ inputProps?: TextFieldProps
18
+ size?: 'medium' | 'small'
19
+ }
20
+
21
+ export default function TimePicker({
22
+ name,
23
+ label,
24
+ required,
25
+ minTime,
26
+ maxTime,
27
+ onChange,
28
+ value,
29
+ placeholder,
30
+ size = 'medium',
31
+ ...rest
32
+ }: ITimePicker) {
33
+ return (
34
+ <Flatpickr
35
+ options={{
36
+ enableTime: true,
37
+ noCalendar: true,
38
+ dateFormat: 'h:i K',
39
+ minTime,
40
+ maxTime,
41
+ allowInput: true,
42
+ }}
43
+ onClose={(dates) => {
44
+ if (onChange) onChange(dates[0])
45
+ }}
46
+ onChange={(dates: Date[]) => {
47
+ if (onChange) onChange(dates[0])
48
+ }}
49
+ value={value || null}
50
+ render={(
51
+ props: Omit<DateTimePickerProps, 'options' | 'render'>,
52
+ ref: (node: HTMLInputElement | null) => void,
53
+ ) => {
54
+ return (
55
+ <TextField
56
+ size={size}
57
+ placeholder={placeholder}
58
+ label={label}
59
+ name={name}
60
+ variant="outlined"
61
+ autoComplete="off"
62
+ required={required}
63
+ inputRef={ref}
64
+ InputProps={{
65
+ endAdornment: (
66
+ <InputAdornment position="end">
67
+ <QueryBuilder />
68
+ </InputAdornment>
69
+ ),
70
+ }}
71
+ {...rest.inputProps}
72
+ />
73
+ )
74
+ }}
75
+ />
76
+ )
77
+ }
@@ -1,26 +1,26 @@
1
- import TextField from './TextField'
2
- import DateTimePicker from './DateTimePicker'
3
- import FormLabel from './FormLabel'
4
- import MultiCheckbox from './MultiCheckbox'
5
- import MultiSelect from './MultiSelect'
6
- import RadioGroup from './RadioGroup'
7
- import SingleCheckbox from './SingleCheckbox'
8
- import SingleSelect from './SingleSelect'
9
- import AutoCompleteSearch from './AutoCompleteSearch'
10
- import TimePicker from './TimePicker'
11
- import DatePicker from './DatePicker'
12
- import DateRangePicker from './DateRangePicker'
13
- export {
14
- TextField,
15
- DateTimePicker,
16
- FormLabel,
17
- MultiCheckbox,
18
- MultiSelect,
19
- RadioGroup,
20
- SingleCheckbox,
21
- SingleSelect,
22
- AutoCompleteSearch,
23
- TimePicker,
24
- DatePicker,
25
- DateRangePicker,
26
- }
1
+ import TextField from './TextField'
2
+ import DateTimePicker from './DateTimePicker'
3
+ import FormLabel from './FormLabel'
4
+ import MultiCheckbox from './MultiCheckbox'
5
+ import MultiSelect from './MultiSelect'
6
+ import RadioGroup from './RadioGroup'
7
+ import SingleCheckbox from './SingleCheckbox'
8
+ import SingleSelect from './SingleSelect'
9
+ import AutoCompleteSearch from './AutoCompleteSearch'
10
+ import TimePicker from './TimePicker'
11
+ import DatePicker from './DatePicker'
12
+ import DateRangePicker from './DateRangePicker'
13
+ export {
14
+ TextField,
15
+ DateTimePicker,
16
+ FormLabel,
17
+ MultiCheckbox,
18
+ MultiSelect,
19
+ RadioGroup,
20
+ SingleCheckbox,
21
+ SingleSelect,
22
+ AutoCompleteSearch,
23
+ TimePicker,
24
+ DatePicker,
25
+ DateRangePicker,
26
+ }
@@ -1,3 +1,3 @@
1
- import { ReactNode } from 'react'
2
-
3
- export type IOption = { label: ReactNode; value: any }
1
+ import { ReactNode } from 'react'
2
+
3
+ export type IOption = { label: ReactNode; value: any }
@@ -1,7 +1,7 @@
1
- export default function JsonPreview({ data }: { data: any }) {
2
- return (
3
- <div>
4
- <pre>{JSON.stringify(data, null, 2)}</pre>
5
- </div>
6
- )
7
- }
1
+ export default function JsonPreview({ data }: { data: any }) {
2
+ return (
3
+ <div>
4
+ <pre>{JSON.stringify(data, null, 2)}</pre>
5
+ </div>
6
+ )
7
+ }
@@ -1,21 +1,21 @@
1
- import { Box, Stack, Typography } from '@mui/material'
2
- import { ReactNode } from 'react'
3
-
4
- export default function LabelValue({
5
- label,
6
- value,
7
- reverse = false,
8
- }: {
9
- label: string | ReactNode
10
- value?: ReactNode
11
- reverse?: boolean
12
- }) {
13
- return (
14
- <Stack flexDirection={reverse ? 'column-reverse' : 'column'} gap="6px">
15
- <Typography variant="subtitle2">{label}</Typography>
16
- <Typography paragraph fontWeight={600}>
17
- {value ?? '-'}
18
- </Typography>
19
- </Stack>
20
- )
21
- }
1
+ import { Box, Stack, Typography } from '@mui/material'
2
+ import { ReactNode } from 'react'
3
+
4
+ export default function LabelValue({
5
+ label,
6
+ value,
7
+ reverse = false,
8
+ }: {
9
+ label: string | ReactNode
10
+ value?: ReactNode
11
+ reverse?: boolean
12
+ }) {
13
+ return (
14
+ <Stack flexDirection={reverse ? 'column-reverse' : 'column'} gap="6px">
15
+ <Typography variant="subtitle2">{label}</Typography>
16
+ <Typography paragraph fontWeight={600}>
17
+ {value ?? '-'}
18
+ </Typography>
19
+ </Stack>
20
+ )
21
+ }
@@ -1,49 +1,49 @@
1
- import { Button, Stack } from '@mui/material'
2
- import { useForm } from 'react-hook-form'
3
- import { toast } from 'react-toastify'
4
- import { FormTextField } from '..'
5
- import axios, { axiosErrorToast } from '../../config/axios'
6
-
7
- export default function ChangePassword({ close }) {
8
- const { handleSubmit, control } = useForm()
9
-
10
- const onSubmit = async (formData) => {
11
- try {
12
- await axios.post('/auth-server/auth/change-password', formData)
13
- toast.success('Password Changed Successfully')
14
- } catch (error) {
15
- axiosErrorToast(error)
16
- }
17
- }
18
-
19
- return (
20
- <form onSubmit={handleSubmit(onSubmit)}>
21
- <Stack gap={2}>
22
- <FormTextField
23
- label="Old Password"
24
- control={control}
25
- name="oldPassword"
26
- required
27
- />
28
- <FormTextField
29
- label="New Password"
30
- control={control}
31
- name="newPassword"
32
- required
33
- />
34
- <FormTextField
35
- label="Confirm Password"
36
- control={control}
37
- name="password"
38
- required
39
- />
40
- <Stack>
41
- <Button variant="outlined" onClick={close}>
42
- Cancel
43
- </Button>
44
- <Button type="submit">Submit</Button>
45
- </Stack>
46
- </Stack>
47
- </form>
48
- )
49
- }
1
+ import { Button, Stack } from '@mui/material'
2
+ import { useForm } from 'react-hook-form'
3
+ import { toast } from 'react-toastify'
4
+ import { FormTextField } from '..'
5
+ import axios, { axiosErrorToast } from '../../config/axios'
6
+
7
+ export default function ChangePassword({ close }) {
8
+ const { handleSubmit, control } = useForm()
9
+
10
+ const onSubmit = async (formData) => {
11
+ try {
12
+ await axios.post('/auth-server/auth/change-password', formData)
13
+ toast.success('Password Changed Successfully')
14
+ } catch (error) {
15
+ axiosErrorToast(error)
16
+ }
17
+ }
18
+
19
+ return (
20
+ <form onSubmit={handleSubmit(onSubmit)}>
21
+ <Stack gap={2}>
22
+ <FormTextField
23
+ label="Old Password"
24
+ control={control}
25
+ name="oldPassword"
26
+ required
27
+ />
28
+ <FormTextField
29
+ label="New Password"
30
+ control={control}
31
+ name="newPassword"
32
+ required
33
+ />
34
+ <FormTextField
35
+ label="Confirm Password"
36
+ control={control}
37
+ name="password"
38
+ required
39
+ />
40
+ <Stack>
41
+ <Button variant="outlined" onClick={close}>
42
+ Cancel
43
+ </Button>
44
+ <Button type="submit">Submit</Button>
45
+ </Stack>
46
+ </Stack>
47
+ </form>
48
+ )
49
+ }
@@ -1,112 +1,112 @@
1
- import { Box, Button, Typography } from '@mui/material'
2
- import { ReactNode } from 'react'
3
- import { isDevelopment } from '../../../constants/isDevelopment'
4
- import { applications } from './applications'
5
- import AppsMenu from './AppsMenu'
6
- import {
7
- collegex,
8
- commutex,
9
- enrollx,
10
- examx,
11
- hostelx,
12
- payx,
13
- peoplex,
14
- } from './assets'
15
-
16
- import { HelpOutline } from '@mui/icons-material'
17
- import CogWheelMenu from './HeaderActions/CogWheelMenu'
18
- import {
19
- StyledHeader,
20
- StyledImageWrapper,
21
- StyledLogosWrapper,
22
- StyledRouterLink,
23
- } from './styles'
24
- import UserBox from './HeaderActions/UserBox'
25
- import FreshDeskHelpButton from './HeaderActions/FreshDeskHelpButton'
26
- import HeaderActions from './HeaderActions/HeaderActions'
27
-
28
- const imageMap = {
29
- ums: collegex,
30
- enroll: enrollx,
31
- exams: examx,
32
- payments: payx,
33
- people: peoplex,
34
- campx: collegex,
35
- commute: commutex,
36
- hostel: hostelx,
37
- }
38
-
39
- interface AppHeaderProps {
40
- clientLogo: string
41
- fullName: string
42
- userBoxActions: {
43
- label: ReactNode
44
- icon?: ReactNode
45
- onClick: any
46
- }[]
47
- customHeaderActions?: ReactNode
48
- cogWheelMenu?: { label: string; path: string }[]
49
- }
50
-
51
- export default function AppHeader({
52
- clientLogo = imageMap.campx,
53
- fullName,
54
- userBoxActions = [],
55
- cogWheelMenu = [],
56
- customHeaderActions,
57
- }: AppHeaderProps) {
58
- return (
59
- <StyledHeader>
60
- <Box sx={{ display: 'flex', alignItems: 'center', gap: '10px' }}>
61
- <AppsMenu />
62
- <AppLogo clientLogo={clientLogo} />
63
- </Box>
64
- <Box className="actions">
65
- {customHeaderActions ? (
66
- customHeaderActions
67
- ) : (
68
- <HeaderActions
69
- cogWheelMenu={cogWheelMenu}
70
- fullName={fullName}
71
- userBoxActions={userBoxActions}
72
- />
73
- )}
74
- </Box>
75
- </StyledHeader>
76
- )
77
- }
78
-
79
- const AppLogo = ({ clientLogo }) => {
80
- const originSubdomain = window.location.host.split('.')?.slice(-3)[0] ?? 'ums'
81
- const currentApp =
82
- applications.find((item) => item.key === originSubdomain)?.key ?? 'campx'
83
-
84
- return (
85
- <StyledRouterLink to={'/'}>
86
- <StyledLogosWrapper>
87
- <StyledImageWrapper>
88
- <img src={imageMap[currentApp]} />
89
- </StyledImageWrapper>
90
- <Box
91
- sx={{
92
- height: '26px',
93
- width: '2px',
94
- background: 'gray',
95
- }}
96
- ></Box>
97
- <StyledImageWrapper>
98
- {isDevelopment ? (
99
- <Typography variant="h1">Developer</Typography>
100
- ) : (
101
- <img
102
- src={clientLogo}
103
- onError={(e: any) => {
104
- e.target.src = imageMap.campx
105
- }}
106
- />
107
- )}
108
- </StyledImageWrapper>
109
- </StyledLogosWrapper>
110
- </StyledRouterLink>
111
- )
112
- }
1
+ import { Box, Button, Typography } from '@mui/material'
2
+ import { ReactNode } from 'react'
3
+ import { isDevelopment } from '../../../constants/isDevelopment'
4
+ import { applications } from './applications'
5
+ import AppsMenu from './AppsMenu'
6
+ import {
7
+ collegex,
8
+ commutex,
9
+ enrollx,
10
+ examx,
11
+ hostelx,
12
+ payx,
13
+ peoplex,
14
+ } from './assets'
15
+
16
+ import { HelpOutline } from '@mui/icons-material'
17
+ import CogWheelMenu from './HeaderActions/CogWheelMenu'
18
+ import {
19
+ StyledHeader,
20
+ StyledImageWrapper,
21
+ StyledLogosWrapper,
22
+ StyledRouterLink,
23
+ } from './styles'
24
+ import UserBox from './HeaderActions/UserBox'
25
+ import FreshDeskHelpButton from './HeaderActions/FreshDeskHelpButton'
26
+ import HeaderActions from './HeaderActions/HeaderActions'
27
+
28
+ const imageMap = {
29
+ ums: collegex,
30
+ enroll: enrollx,
31
+ exams: examx,
32
+ payments: payx,
33
+ people: peoplex,
34
+ campx: collegex,
35
+ commute: commutex,
36
+ hostel: hostelx,
37
+ }
38
+
39
+ interface AppHeaderProps {
40
+ clientLogo: string
41
+ fullName: string
42
+ userBoxActions: {
43
+ label: ReactNode
44
+ icon?: ReactNode
45
+ onClick: any
46
+ }[]
47
+ customHeaderActions?: ReactNode
48
+ cogWheelMenu?: { label: string; path: string }[]
49
+ }
50
+
51
+ export default function AppHeader({
52
+ clientLogo = imageMap.campx,
53
+ fullName,
54
+ userBoxActions = [],
55
+ cogWheelMenu = [],
56
+ customHeaderActions,
57
+ }: AppHeaderProps) {
58
+ return (
59
+ <StyledHeader>
60
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: '10px' }}>
61
+ <AppsMenu />
62
+ <AppLogo clientLogo={clientLogo} />
63
+ </Box>
64
+ <Box className="actions">
65
+ {customHeaderActions ? (
66
+ customHeaderActions
67
+ ) : (
68
+ <HeaderActions
69
+ cogWheelMenu={cogWheelMenu}
70
+ fullName={fullName}
71
+ userBoxActions={userBoxActions}
72
+ />
73
+ )}
74
+ </Box>
75
+ </StyledHeader>
76
+ )
77
+ }
78
+
79
+ const AppLogo = ({ clientLogo }) => {
80
+ const originSubdomain = window.location.host.split('.')?.slice(-3)[0] ?? 'ums'
81
+ const currentApp =
82
+ applications.find((item) => item.key === originSubdomain)?.key ?? 'campx'
83
+
84
+ return (
85
+ <StyledRouterLink to={'/'}>
86
+ <StyledLogosWrapper>
87
+ <StyledImageWrapper>
88
+ <img src={imageMap[currentApp]} />
89
+ </StyledImageWrapper>
90
+ <Box
91
+ sx={{
92
+ height: '26px',
93
+ width: '2px',
94
+ background: 'gray',
95
+ }}
96
+ ></Box>
97
+ <StyledImageWrapper>
98
+ {isDevelopment ? (
99
+ <Typography variant="h1">Developer</Typography>
100
+ ) : (
101
+ <img
102
+ src={clientLogo}
103
+ onError={(e: any) => {
104
+ e.target.src = imageMap.campx
105
+ }}
106
+ />
107
+ )}
108
+ </StyledImageWrapper>
109
+ </StyledLogosWrapper>
110
+ </StyledRouterLink>
111
+ )
112
+ }