@campxdev/shared 1.4.19 → 1.4.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +18 -18
  3. package/package.json +84 -84
  4. package/src/assets/fonts/avenir/index.ts +2 -2
  5. package/src/assets/fonts/poppins/index.ts +7 -7
  6. package/src/assets/images/index.ts +17 -17
  7. package/src/assets/images/unauth.svg +92 -92
  8. package/src/components/ActionButton.tsx +20 -20
  9. package/src/components/Attachment.tsx +26 -26
  10. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  11. package/src/components/AutocompleteSearch/index.tsx +1 -1
  12. package/src/components/Breadcrumbs.tsx +72 -72
  13. package/src/components/Card.tsx +98 -98
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +123 -123
  16. package/src/components/Chips.tsx +81 -81
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +41 -41
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton/AnchorElement.tsx +44 -0
  24. package/src/components/DropDownButton/DropDownButton.tsx +175 -177
  25. package/src/components/DropDownButton/DropdownMenuItem.tsx +100 -0
  26. package/src/components/DropDownButton/index.tsx +1 -1
  27. package/src/components/DropDownButton/styles.tsx +59 -56
  28. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  29. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  30. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  31. package/src/components/ErrorBoundary/index.tsx +1 -1
  32. package/src/components/ErrorBox.tsx +42 -42
  33. package/src/components/FilterComponents/FilterButton.tsx +40 -40
  34. package/src/components/FilterComponents/SearchBar.tsx +40 -40
  35. package/src/components/FloatingContainer.tsx +33 -33
  36. package/src/components/Form/Form.tsx +156 -156
  37. package/src/components/Form/RenderForm.tsx +188 -188
  38. package/src/components/FullCalendar/Actions.tsx +162 -162
  39. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  40. package/src/components/FullScreenLoader.tsx +19 -19
  41. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  42. package/src/components/HookForm/DatePicker.tsx +40 -40
  43. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  44. package/src/components/HookForm/FormLabel.tsx +14 -14
  45. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  46. package/src/components/HookForm/MultiSelect.tsx +53 -53
  47. package/src/components/HookForm/RadioGroup.tsx +45 -45
  48. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  49. package/src/components/HookForm/SingleSelect.tsx +46 -46
  50. package/src/components/HookForm/TextField.tsx +40 -40
  51. package/src/components/HookForm/TimePicker.tsx +40 -40
  52. package/src/components/HookForm/index.ts +23 -23
  53. package/src/components/IconButtons/IconButtons.tsx +137 -137
  54. package/src/components/IconButtons/Icons.tsx +268 -268
  55. package/src/components/IconButtons/assets/edit.svg +4 -4
  56. package/src/components/IconButtons/assets/eye.svg +6 -6
  57. package/src/components/IconButtons/assets/trash.svg +7 -7
  58. package/src/components/IconButtons/index.tsx +8 -8
  59. package/src/components/IconLabel.tsx +37 -37
  60. package/src/components/Image/Image.tsx +45 -45
  61. package/src/components/Image/index.tsx +1 -1
  62. package/src/components/ImageUpload.tsx +98 -98
  63. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  64. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  65. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  66. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  67. package/src/components/Input/DatePicker.tsx +69 -69
  68. package/src/components/Input/DateRangePicker.tsx +105 -105
  69. package/src/components/Input/DateTimePicker.tsx +77 -77
  70. package/src/components/Input/FormLabel.tsx +21 -21
  71. package/src/components/Input/MultiCheckbox.tsx +64 -64
  72. package/src/components/Input/MultiSelect.tsx +150 -150
  73. package/src/components/Input/RadioGroup.tsx +104 -104
  74. package/src/components/Input/SingleCheckbox.tsx +78 -78
  75. package/src/components/Input/SingleSelect.tsx +104 -104
  76. package/src/components/Input/TextField.tsx +46 -46
  77. package/src/components/Input/TimePicker.tsx +70 -70
  78. package/src/components/Input/index.ts +26 -26
  79. package/src/components/Input/types.ts +3 -3
  80. package/src/components/JsonPreview.tsx +7 -7
  81. package/src/components/LabelValue.tsx +21 -21
  82. package/src/components/Layout/ChangePassword.tsx +49 -49
  83. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  84. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  85. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  86. package/src/components/Layout/Header/Notification.tsx +13 -13
  87. package/src/components/Layout/Header/UserBox.tsx +81 -81
  88. package/src/components/Layout/Header/applications.ts +91 -91
  89. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  90. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  91. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  92. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  93. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  94. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  95. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  96. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  97. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  98. package/src/components/Layout/Header/assets/index.ts +33 -33
  99. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  100. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  101. package/src/components/Layout/Header/assets/payx.svg +19 -19
  102. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  103. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  104. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  105. package/src/components/Layout/Header/icons.tsx +57 -57
  106. package/src/components/Layout/Header/index.tsx +1 -1
  107. package/src/components/Layout/Header/styles.tsx +124 -124
  108. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  109. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  110. package/src/components/Layout/SideNav.tsx +168 -168
  111. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  112. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  113. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  114. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  115. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  116. package/src/components/Layout/Tickets/index.tsx +1 -1
  117. package/src/components/Layout/Tickets/services.ts +11 -11
  118. package/src/components/Layout/Tickets/styles.tsx +136 -136
  119. package/src/components/LinearProgress.tsx +19 -19
  120. package/src/components/ListItemButton.tsx +95 -95
  121. package/src/components/LoginForm.tsx +80 -80
  122. package/src/components/MediaRow/MediaRow.tsx +69 -69
  123. package/src/components/MediaRow/index.tsx +1 -1
  124. package/src/components/ModalButtons/DialogButton.tsx +121 -93
  125. package/src/components/ModalButtons/DrawerButton.tsx +113 -84
  126. package/src/components/ModalButtons/index.tsx +4 -4
  127. package/src/components/NoDataIllustration.tsx +32 -32
  128. package/src/components/PageContent.tsx +12 -12
  129. package/src/components/PageHeader.tsx +55 -55
  130. package/src/components/PageNotFound.tsx +26 -26
  131. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  132. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  133. package/src/components/PopupConfirm/index.tsx +1 -1
  134. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  135. package/src/components/Row.tsx +24 -24
  136. package/src/components/Spinner.tsx +18 -18
  137. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  138. package/src/components/StepsHeader/index.tsx +1 -1
  139. package/src/components/StyledTableContainer.tsx +33 -33
  140. package/src/components/SwitchButton.tsx +41 -41
  141. package/src/components/Table.tsx +42 -42
  142. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  143. package/src/components/TableComponent/Icons/index.tsx +50 -50
  144. package/src/components/TableComponent/ReactTable.tsx +295 -295
  145. package/src/components/TableComponent/RenderTableBody.tsx +68 -68
  146. package/src/components/TableComponent/Table.tsx +197 -197
  147. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  148. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  149. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  150. package/src/components/TableComponent/index.tsx +1 -1
  151. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  152. package/src/components/TableComponent/styles.tsx +170 -170
  153. package/src/components/TableComponent/types.ts +57 -57
  154. package/src/components/Tabs/Tabs.tsx +52 -52
  155. package/src/components/Tabs/TabsContainer.tsx +50 -50
  156. package/src/components/Tabs/index.tsx +1 -1
  157. package/src/components/Tabs/styles.tsx +55 -55
  158. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  159. package/src/components/ToastContainer/index.tsx +1 -1
  160. package/src/components/UploadButton/UploadButton.tsx +126 -126
  161. package/src/components/UploadButton/index.tsx +1 -1
  162. package/src/components/UploadButton/types.ts +19 -19
  163. package/src/components/UploadDocument.tsx +108 -108
  164. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  165. package/src/components/UploadFileDialog/index.tsx +1 -1
  166. package/src/components/index.ts +89 -89
  167. package/src/config/axios.ts +73 -73
  168. package/src/config/axiosEvaluator.ts +53 -53
  169. package/src/config/axiosXTenant.ts +57 -57
  170. package/src/constants/UIConstants.ts +97 -97
  171. package/src/constants/formValidations.ts +6 -6
  172. package/src/constants/index.ts +5 -5
  173. package/src/constants/isDevelopment.ts +3 -3
  174. package/src/constants/permissions.ts +67 -67
  175. package/src/constants/validateMessages.ts +12 -12
  176. package/src/contexts/LoginFormProvider.tsx +39 -39
  177. package/src/contexts/Providers.tsx +73 -73
  178. package/src/contexts/PublicProviders.tsx +30 -30
  179. package/src/contexts/QueryClientProvider.tsx +22 -22
  180. package/src/hooks/index.ts +3 -3
  181. package/src/hooks/useAuth.ts +96 -96
  182. package/src/hooks/useFetch.ts +53 -53
  183. package/src/hooks/useRouter.ts +31 -31
  184. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  185. package/src/layouts/Components/icons/index.tsx +403 -403
  186. package/src/layouts/Components/styles.tsx +74 -74
  187. package/src/layouts/ComponentsLayout.tsx +3 -3
  188. package/src/permissions/PageWithPermission.tsx +18 -18
  189. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  190. package/src/permissions/ValidateAccess.tsx +18 -18
  191. package/src/permissions/index.ts +2 -2
  192. package/src/react-app-env.d.ts +1 -1
  193. package/src/shared-state/AssetsStore.ts +15 -15
  194. package/src/shared-state/PermissionsStore.ts +352 -352
  195. package/src/shared-state/UserStore.ts +13 -13
  196. package/src/shared-state/index.ts +4 -4
  197. package/src/theme/App.less +3 -3
  198. package/src/theme/MuiThemeProvider.tsx +13 -13
  199. package/src/theme/customCssBaseline.ts +78 -78
  200. package/src/theme/index.css +75 -75
  201. package/src/theme/muiTheme.ts +592 -560
  202. package/src/theme/theme.d.ts +75 -75
  203. package/src/utils/alphabet.ts +23 -23
  204. package/src/utils/arrayPadEnd.ts +3 -3
  205. package/src/utils/formatCurrency.ts +9 -9
  206. package/src/utils/getUrlParams.ts +5 -5
  207. package/src/utils/index.ts +7 -7
  208. package/src/utils/logout.ts +24 -24
  209. package/src/utils/ordinalSuffixOf.ts +14 -14
  210. package/src/utils/romanize.ts +40 -40
  211. package/src/utils/withRouteWrapper.tsx +25 -25
  212. package/src/utils/withSuspense.tsx +6 -6
  213. package/styled-components.tsx +60 -60
  214. package/tsconfig.json +21 -21
  215. package/yarn-error.log +109 -0
  216. package/src/components/Layout/Header/assets/commuteX.png +0 -0
@@ -1,113 +1,113 @@
1
- import {
2
- Autocomplete,
3
- Box,
4
- CircularProgress,
5
- TextField,
6
- Typography,
7
- } from '@mui/material'
8
- import { Controller } from 'react-hook-form'
9
- import FormLabel from './FormLabel'
10
-
11
- type Option = {
12
- value: string | any
13
- label: string | any
14
- }
15
-
16
- interface MultiSelectProps {
17
- control?: any
18
- label: string
19
- name: string
20
- options: { value: string | any; label: string | any }[]
21
- placeholder?: string
22
- hookForm?: boolean
23
- loading?: boolean
24
- [key: string]: any
25
- multiple?: boolean
26
- }
27
-
28
- export default function FormAutoCompleteSearch({
29
- control,
30
- name,
31
- options,
32
- label,
33
- loading, // pass this variable when options are from an async operation
34
- hookForm = true,
35
- multiple = false,
36
- ...props
37
- }: MultiSelectProps) {
38
- if (!hookForm) {
39
- return (
40
- <Autocomplete
41
- multiple={multiple}
42
- value={props.value}
43
- fullWidth
44
- onChange={(e, value) => {
45
- props.onChange(value)
46
- }}
47
- options={options || []}
48
- getOptionLabel={(option: Option) => option?.label || ''}
49
- renderInput={(params) => (
50
- <TextField
51
- variant="outlined"
52
- label={<FormLabel label={label} required={props.required} />}
53
- {...params}
54
- />
55
- )}
56
- {...props}
57
- />
58
- )
59
- }
60
-
61
- return (
62
- <Controller
63
- control={control}
64
- name={name}
65
- render={({ field, fieldState: { error } }) => (
66
- <Box>
67
- <Autocomplete
68
- multiple={multiple}
69
- loading={loading}
70
- value={field.value}
71
- fullWidth
72
- onChange={(e, value) => {
73
- field.onChange(value)
74
- }}
75
- options={options || []}
76
- getOptionLabel={(option: Option) => option?.label || ''}
77
- renderInput={(params) => (
78
- <TextField
79
- error={Boolean(error)}
80
- variant="outlined"
81
- label={<FormLabel label={label} required={props.required} />}
82
- InputProps={{
83
- ...params.InputProps,
84
- endAdornment: (
85
- <>
86
- {loading ? (
87
- <CircularProgress color="inherit" size={20} />
88
- ) : null}
89
- {params.InputProps.endAdornment}
90
- </>
91
- ),
92
- }}
93
- {...params}
94
- />
95
- )}
96
- />
97
- {error && (
98
- <Typography
99
- fontSize={12}
100
- sx={{
101
- paddingLeft: '2px',
102
- marginTop: '2px',
103
- }}
104
- color="error"
105
- >
106
- {error?.message}
107
- </Typography>
108
- )}
109
- </Box>
110
- )}
111
- />
112
- )
113
- }
1
+ import {
2
+ Autocomplete,
3
+ Box,
4
+ CircularProgress,
5
+ TextField,
6
+ Typography,
7
+ } from '@mui/material'
8
+ import { Controller } from 'react-hook-form'
9
+ import FormLabel from './FormLabel'
10
+
11
+ type Option = {
12
+ value: string | any
13
+ label: string | any
14
+ }
15
+
16
+ interface MultiSelectProps {
17
+ control?: any
18
+ label: string
19
+ name: string
20
+ options: { value: string | any; label: string | any }[]
21
+ placeholder?: string
22
+ hookForm?: boolean
23
+ loading?: boolean
24
+ [key: string]: any
25
+ multiple?: boolean
26
+ }
27
+
28
+ export default function FormAutoCompleteSearch({
29
+ control,
30
+ name,
31
+ options,
32
+ label,
33
+ loading, // pass this variable when options are from an async operation
34
+ hookForm = true,
35
+ multiple = false,
36
+ ...props
37
+ }: MultiSelectProps) {
38
+ if (!hookForm) {
39
+ return (
40
+ <Autocomplete
41
+ multiple={multiple}
42
+ value={props.value}
43
+ fullWidth
44
+ onChange={(e, value) => {
45
+ props.onChange(value)
46
+ }}
47
+ options={options || []}
48
+ getOptionLabel={(option: Option) => option?.label || ''}
49
+ renderInput={(params) => (
50
+ <TextField
51
+ variant="outlined"
52
+ label={<FormLabel label={label} required={props.required} />}
53
+ {...params}
54
+ />
55
+ )}
56
+ {...props}
57
+ />
58
+ )
59
+ }
60
+
61
+ return (
62
+ <Controller
63
+ control={control}
64
+ name={name}
65
+ render={({ field, fieldState: { error } }) => (
66
+ <Box>
67
+ <Autocomplete
68
+ multiple={multiple}
69
+ loading={loading}
70
+ value={field.value}
71
+ fullWidth
72
+ onChange={(e, value) => {
73
+ field.onChange(value)
74
+ }}
75
+ options={options || []}
76
+ getOptionLabel={(option: Option) => option?.label || ''}
77
+ renderInput={(params) => (
78
+ <TextField
79
+ error={Boolean(error)}
80
+ variant="outlined"
81
+ label={<FormLabel label={label} required={props.required} />}
82
+ InputProps={{
83
+ ...params.InputProps,
84
+ endAdornment: (
85
+ <>
86
+ {loading ? (
87
+ <CircularProgress color="inherit" size={20} />
88
+ ) : null}
89
+ {params.InputProps.endAdornment}
90
+ </>
91
+ ),
92
+ }}
93
+ {...params}
94
+ />
95
+ )}
96
+ />
97
+ {error && (
98
+ <Typography
99
+ fontSize={12}
100
+ sx={{
101
+ paddingLeft: '2px',
102
+ marginTop: '2px',
103
+ }}
104
+ color="error"
105
+ >
106
+ {error?.message}
107
+ </Typography>
108
+ )}
109
+ </Box>
110
+ )}
111
+ />
112
+ )
113
+ }
@@ -1,40 +1,40 @@
1
- import { Controller } from 'react-hook-form'
2
- import { DatePicker } from '../Input'
3
- import { IDatePicker } from '../Input/DatePicker'
4
- interface Props extends Omit<IDatePicker, 'onChange' | 'value'> {
5
- name: string
6
- control: any
7
- }
8
-
9
- export default function FormDatePicker({
10
- name,
11
- control,
12
- minDate,
13
- maxDate,
14
- label,
15
- required = false,
16
- ...rest
17
- }: Props) {
18
- return (
19
- <Controller
20
- name={name}
21
- control={control}
22
- render={({ field, fieldState: { error } }) => (
23
- <DatePicker
24
- label={label}
25
- required={required}
26
- onChange={field.onChange}
27
- value={field.value}
28
- minDate={minDate}
29
- maxDate={maxDate}
30
- inputProps={{
31
- ...rest.inputProps,
32
- error: !!error,
33
- helperText: error?.message ?? '',
34
- }}
35
- {...rest}
36
- />
37
- )}
38
- />
39
- )
40
- }
1
+ import { Controller } from 'react-hook-form'
2
+ import { DatePicker } from '../Input'
3
+ import { IDatePicker } from '../Input/DatePicker'
4
+ interface Props extends Omit<IDatePicker, 'onChange' | 'value'> {
5
+ name: string
6
+ control: any
7
+ }
8
+
9
+ export default function FormDatePicker({
10
+ name,
11
+ control,
12
+ minDate,
13
+ maxDate,
14
+ label,
15
+ required = false,
16
+ ...rest
17
+ }: Props) {
18
+ return (
19
+ <Controller
20
+ name={name}
21
+ control={control}
22
+ render={({ field, fieldState: { error } }) => (
23
+ <DatePicker
24
+ label={label}
25
+ required={required}
26
+ onChange={field.onChange}
27
+ value={field.value}
28
+ minDate={minDate}
29
+ maxDate={maxDate}
30
+ inputProps={{
31
+ ...rest.inputProps,
32
+ error: !!error,
33
+ helperText: error?.message ?? '',
34
+ }}
35
+ {...rest}
36
+ />
37
+ )}
38
+ />
39
+ )
40
+ }
@@ -1,47 +1,47 @@
1
- import { Controller } from 'react-hook-form'
2
- import DateTimePicker, { IDateTimePicker } from '../Input/DateTimePicker'
3
-
4
- interface Props extends Omit<IDateTimePicker, 'onChange' | 'value'> {
5
- name: string
6
- control: any
7
- }
8
-
9
- export default function FormDateTimePicker({
10
- name,
11
- control,
12
- label,
13
- required,
14
- minDate,
15
- maxDate,
16
- minTime,
17
- maxTime,
18
- ...rest
19
- }: Props) {
20
- return (
21
- <Controller
22
- name={name}
23
- control={control}
24
- render={({ field, fieldState: { error } }) => (
25
- <DateTimePicker
26
- name={name}
27
- label={label}
28
- required={required}
29
- onChange={(v) => {
30
- field.onChange(v)
31
- }}
32
- value={field.value}
33
- minDate={minDate}
34
- maxDate={maxDate}
35
- minTime={minTime}
36
- maxTime={maxTime}
37
- inputProps={{
38
- ...rest.inputProps,
39
- error: !!error,
40
- helperText: error?.message ?? '',
41
- }}
42
- {...rest}
43
- />
44
- )}
45
- />
46
- )
47
- }
1
+ import { Controller } from 'react-hook-form'
2
+ import DateTimePicker, { IDateTimePicker } from '../Input/DateTimePicker'
3
+
4
+ interface Props extends Omit<IDateTimePicker, 'onChange' | 'value'> {
5
+ name: string
6
+ control: any
7
+ }
8
+
9
+ export default function FormDateTimePicker({
10
+ name,
11
+ control,
12
+ label,
13
+ required,
14
+ minDate,
15
+ maxDate,
16
+ minTime,
17
+ maxTime,
18
+ ...rest
19
+ }: Props) {
20
+ return (
21
+ <Controller
22
+ name={name}
23
+ control={control}
24
+ render={({ field, fieldState: { error } }) => (
25
+ <DateTimePicker
26
+ name={name}
27
+ label={label}
28
+ required={required}
29
+ onChange={(v) => {
30
+ field.onChange(v)
31
+ }}
32
+ value={field.value}
33
+ minDate={minDate}
34
+ maxDate={maxDate}
35
+ minTime={minTime}
36
+ maxTime={maxTime}
37
+ inputProps={{
38
+ ...rest.inputProps,
39
+ error: !!error,
40
+ helperText: error?.message ?? '',
41
+ }}
42
+ {...rest}
43
+ />
44
+ )}
45
+ />
46
+ )
47
+ }
@@ -1,14 +1,14 @@
1
- import { Typography } from '@mui/material'
2
-
3
- export default function FormLabel({ label, required }) {
4
- return (
5
- <>
6
- {label}
7
- {required && (
8
- <Typography fontSize={14} component={'span'} color="error">
9
- {' *'}
10
- </Typography>
11
- )}
12
- </>
13
- )
14
- }
1
+ import { Typography } from '@mui/material'
2
+
3
+ export default function FormLabel({ label, required }) {
4
+ return (
5
+ <>
6
+ {label}
7
+ {required && (
8
+ <Typography fontSize={14} component={'span'} color="error">
9
+ {' *'}
10
+ </Typography>
11
+ )}
12
+ </>
13
+ )
14
+ }
@@ -1,69 +1,69 @@
1
- import {
2
- Box,
3
- BoxProps,
4
- FormGroup,
5
- FormGroupProps,
6
- FormHelperText,
7
- } from '@mui/material'
8
- import { ReactNode } from 'react'
9
- import { Controller } from 'react-hook-form'
10
- import { FormLabel, SingleCheckbox } from '../Input'
11
- import { IOption } from '../Input/types'
12
-
13
- interface Props extends FormGroupProps {
14
- label?: ReactNode
15
- name: string
16
- control: any
17
- options: IOption[]
18
- required?: boolean
19
- row?: boolean
20
- containerProps?: BoxProps
21
- }
22
-
23
- export default function FormMultiCheckbox({
24
- name,
25
- control,
26
- label = '',
27
- options = [],
28
- required = false,
29
- row = true,
30
- containerProps,
31
- ...rest
32
- }: Props) {
33
- return (
34
- <Controller
35
- name={name}
36
- control={control}
37
- render={({ field, fieldState: { error } }) => (
38
- <Box width="100%" {...containerProps}>
39
- <FormLabel label={label} name={name} required={required} />
40
- <FormGroup row={row} sx={{ flexWrap: 'wrap' }} {...rest}>
41
- {options?.map((item, index) => (
42
- <SingleCheckbox
43
- key={index}
44
- name={name}
45
- checked={field?.value
46
- ?.map((item: any) => item?.value)
47
- ?.includes(item?.value)}
48
- label={item.label}
49
- onChange={(e) => {
50
- let value = field.value || []
51
- if (e.target.checked) {
52
- let newValue = [...value, item]
53
- field.onChange(newValue)
54
- } else {
55
- let filteredValue = value.filter(
56
- (opt: any) => opt?.value !== item.value,
57
- )
58
- field.onChange(filteredValue)
59
- }
60
- }}
61
- />
62
- ))}
63
- </FormGroup>
64
- {error && <FormHelperText>{error.message}</FormHelperText>}
65
- </Box>
66
- )}
67
- />
68
- )
69
- }
1
+ import {
2
+ Box,
3
+ BoxProps,
4
+ FormGroup,
5
+ FormGroupProps,
6
+ FormHelperText,
7
+ } from '@mui/material'
8
+ import { ReactNode } from 'react'
9
+ import { Controller } from 'react-hook-form'
10
+ import { FormLabel, SingleCheckbox } from '../Input'
11
+ import { IOption } from '../Input/types'
12
+
13
+ interface Props extends FormGroupProps {
14
+ label?: ReactNode
15
+ name: string
16
+ control: any
17
+ options: IOption[]
18
+ required?: boolean
19
+ row?: boolean
20
+ containerProps?: BoxProps
21
+ }
22
+
23
+ export default function FormMultiCheckbox({
24
+ name,
25
+ control,
26
+ label = '',
27
+ options = [],
28
+ required = false,
29
+ row = true,
30
+ containerProps,
31
+ ...rest
32
+ }: Props) {
33
+ return (
34
+ <Controller
35
+ name={name}
36
+ control={control}
37
+ render={({ field, fieldState: { error } }) => (
38
+ <Box width="100%" {...containerProps}>
39
+ <FormLabel label={label} name={name} required={required} />
40
+ <FormGroup row={row} sx={{ flexWrap: 'wrap' }} {...rest}>
41
+ {options?.map((item, index) => (
42
+ <SingleCheckbox
43
+ key={index}
44
+ name={name}
45
+ checked={field?.value
46
+ ?.map((item: any) => item?.value)
47
+ ?.includes(item?.value)}
48
+ label={item.label}
49
+ onChange={(e) => {
50
+ let value = field.value || []
51
+ if (e.target.checked) {
52
+ let newValue = [...value, item]
53
+ field.onChange(newValue)
54
+ } else {
55
+ let filteredValue = value.filter(
56
+ (opt: any) => opt?.value !== item.value,
57
+ )
58
+ field.onChange(filteredValue)
59
+ }
60
+ }}
61
+ />
62
+ ))}
63
+ </FormGroup>
64
+ {error && <FormHelperText>{error.message}</FormHelperText>}
65
+ </Box>
66
+ )}
67
+ />
68
+ )
69
+ }
@@ -1,53 +1,53 @@
1
- import { ReactNode } from 'react'
2
- import { Controller } from 'react-hook-form'
3
- import { MultiSelect } from '../Input'
4
- import { IOption } from '../Input/types'
5
-
6
- interface MultiSelectProps {
7
- control: any
8
- label: ReactNode
9
- name: string
10
- options: IOption[]
11
- placeholder?: string
12
- loading?: boolean
13
- required?: boolean
14
- value?: IOption[] | IOption
15
- onChange?: (value: IOption[] | IOption) => void
16
- multiple?: boolean
17
- }
18
-
19
- export default function FormMultiSelect({
20
- control,
21
- name,
22
- options,
23
- label,
24
- loading,
25
- required,
26
- multiple = true,
27
- ...props
28
- }: MultiSelectProps) {
29
- return (
30
- <Controller
31
- control={control}
32
- name={name}
33
- render={({ field, fieldState: { error } }) => {
34
- return (
35
- <MultiSelect
36
- multiple={multiple}
37
- value={field.value}
38
- label={label}
39
- onChange={(value) => {
40
- field.onChange(value)
41
- }}
42
- loading={loading}
43
- options={options || []}
44
- error={!!error}
45
- required={required}
46
- helperText={error ? error.message : null}
47
- {...props}
48
- />
49
- )
50
- }}
51
- />
52
- )
53
- }
1
+ import { ReactNode } from 'react'
2
+ import { Controller } from 'react-hook-form'
3
+ import { MultiSelect } from '../Input'
4
+ import { IOption } from '../Input/types'
5
+
6
+ interface MultiSelectProps {
7
+ control: any
8
+ label: ReactNode
9
+ name: string
10
+ options: IOption[]
11
+ placeholder?: string
12
+ loading?: boolean
13
+ required?: boolean
14
+ value?: IOption[] | IOption
15
+ onChange?: (value: IOption[] | IOption) => void
16
+ multiple?: boolean
17
+ }
18
+
19
+ export default function FormMultiSelect({
20
+ control,
21
+ name,
22
+ options,
23
+ label,
24
+ loading,
25
+ required,
26
+ multiple = true,
27
+ ...props
28
+ }: MultiSelectProps) {
29
+ return (
30
+ <Controller
31
+ control={control}
32
+ name={name}
33
+ render={({ field, fieldState: { error } }) => {
34
+ return (
35
+ <MultiSelect
36
+ multiple={multiple}
37
+ value={field.value}
38
+ label={label}
39
+ onChange={(value) => {
40
+ field.onChange(value)
41
+ }}
42
+ loading={loading}
43
+ options={options || []}
44
+ error={!!error}
45
+ required={required}
46
+ helperText={error ? error.message : null}
47
+ {...props}
48
+ />
49
+ )
50
+ }}
51
+ />
52
+ )
53
+ }