@campxdev/shared 1.4.18 → 1.4.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +18 -18
  3. package/package.json +84 -84
  4. package/src/assets/fonts/avenir/index.ts +2 -2
  5. package/src/assets/fonts/poppins/index.ts +7 -7
  6. package/src/assets/images/index.ts +17 -17
  7. package/src/assets/images/unauth.svg +92 -92
  8. package/src/components/ActionButton.tsx +20 -20
  9. package/src/components/Attachment.tsx +26 -26
  10. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  11. package/src/components/AutocompleteSearch/index.tsx +1 -1
  12. package/src/components/Breadcrumbs.tsx +72 -72
  13. package/src/components/Card.tsx +98 -98
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +123 -123
  16. package/src/components/Chips.tsx +81 -81
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +41 -41
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton/DropDownButton.tsx +177 -177
  24. package/src/components/DropDownButton/index.tsx +1 -1
  25. package/src/components/DropDownButton/styles.tsx +56 -56
  26. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  27. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  28. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  29. package/src/components/ErrorBoundary/index.tsx +1 -1
  30. package/src/components/ErrorBox.tsx +42 -42
  31. package/src/components/FilterComponents/FilterButton.tsx +40 -39
  32. package/src/components/FilterComponents/SearchBar.tsx +40 -40
  33. package/src/components/FloatingContainer.tsx +33 -33
  34. package/src/components/Form/Form.tsx +156 -156
  35. package/src/components/Form/RenderForm.tsx +188 -188
  36. package/src/components/FullCalendar/Actions.tsx +162 -162
  37. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  38. package/src/components/FullScreenLoader.tsx +19 -19
  39. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  40. package/src/components/HookForm/DatePicker.tsx +40 -40
  41. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  42. package/src/components/HookForm/FormLabel.tsx +14 -14
  43. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  44. package/src/components/HookForm/MultiSelect.tsx +53 -53
  45. package/src/components/HookForm/RadioGroup.tsx +45 -45
  46. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  47. package/src/components/HookForm/SingleSelect.tsx +46 -46
  48. package/src/components/HookForm/TextField.tsx +40 -40
  49. package/src/components/HookForm/TimePicker.tsx +40 -40
  50. package/src/components/HookForm/index.ts +23 -23
  51. package/src/components/IconButtons/IconButtons.tsx +137 -137
  52. package/src/components/IconButtons/Icons.tsx +268 -268
  53. package/src/components/IconButtons/assets/edit.svg +4 -4
  54. package/src/components/IconButtons/assets/eye.svg +6 -6
  55. package/src/components/IconButtons/assets/trash.svg +7 -7
  56. package/src/components/IconButtons/index.tsx +8 -8
  57. package/src/components/IconLabel.tsx +37 -37
  58. package/src/components/Image/Image.tsx +45 -45
  59. package/src/components/Image/index.tsx +1 -1
  60. package/src/components/ImageUpload.tsx +98 -98
  61. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  62. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  63. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  64. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  65. package/src/components/Input/DatePicker.tsx +69 -69
  66. package/src/components/Input/DateRangePicker.tsx +105 -84
  67. package/src/components/Input/DateTimePicker.tsx +77 -77
  68. package/src/components/Input/FormLabel.tsx +21 -21
  69. package/src/components/Input/MultiCheckbox.tsx +64 -64
  70. package/src/components/Input/MultiSelect.tsx +150 -150
  71. package/src/components/Input/RadioGroup.tsx +104 -104
  72. package/src/components/Input/SingleCheckbox.tsx +78 -78
  73. package/src/components/Input/SingleSelect.tsx +104 -104
  74. package/src/components/Input/TextField.tsx +46 -46
  75. package/src/components/Input/TimePicker.tsx +70 -70
  76. package/src/components/Input/index.ts +26 -26
  77. package/src/components/Input/types.ts +3 -3
  78. package/src/components/JsonPreview.tsx +7 -7
  79. package/src/components/LabelValue.tsx +21 -21
  80. package/src/components/Layout/ChangePassword.tsx +49 -49
  81. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  82. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  83. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  84. package/src/components/Layout/Header/Notification.tsx +13 -13
  85. package/src/components/Layout/Header/UserBox.tsx +81 -81
  86. package/src/components/Layout/Header/applications.ts +91 -91
  87. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  88. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  89. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  90. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  91. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  92. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  93. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  94. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  95. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  96. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  97. package/src/components/Layout/Header/assets/index.ts +33 -33
  98. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  99. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  100. package/src/components/Layout/Header/assets/payx.svg +19 -19
  101. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  102. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  103. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  104. package/src/components/Layout/Header/icons.tsx +57 -57
  105. package/src/components/Layout/Header/index.tsx +1 -1
  106. package/src/components/Layout/Header/styles.tsx +124 -124
  107. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  108. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  109. package/src/components/Layout/SideNav.tsx +168 -168
  110. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  111. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  112. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  113. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  114. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  115. package/src/components/Layout/Tickets/index.tsx +1 -1
  116. package/src/components/Layout/Tickets/services.ts +11 -11
  117. package/src/components/Layout/Tickets/styles.tsx +136 -136
  118. package/src/components/LinearProgress.tsx +19 -19
  119. package/src/components/ListItemButton.tsx +95 -95
  120. package/src/components/LoginForm.tsx +80 -80
  121. package/src/components/MediaRow/MediaRow.tsx +69 -69
  122. package/src/components/MediaRow/index.tsx +1 -1
  123. package/src/components/ModalButtons/DialogButton.tsx +93 -93
  124. package/src/components/ModalButtons/DrawerButton.tsx +84 -84
  125. package/src/components/ModalButtons/index.tsx +4 -4
  126. package/src/components/NoDataIllustration.tsx +32 -32
  127. package/src/components/PageContent.tsx +12 -12
  128. package/src/components/PageHeader.tsx +55 -55
  129. package/src/components/PageNotFound.tsx +26 -26
  130. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  131. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  132. package/src/components/PopupConfirm/index.tsx +1 -1
  133. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  134. package/src/components/Row.tsx +24 -24
  135. package/src/components/Spinner.tsx +18 -18
  136. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  137. package/src/components/StepsHeader/index.tsx +1 -1
  138. package/src/components/StyledTableContainer.tsx +33 -33
  139. package/src/components/SwitchButton.tsx +41 -41
  140. package/src/components/Table.tsx +42 -42
  141. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  142. package/src/components/TableComponent/Icons/index.tsx +50 -50
  143. package/src/components/TableComponent/ReactTable.tsx +295 -295
  144. package/src/components/TableComponent/RenderTableBody.tsx +68 -68
  145. package/src/components/TableComponent/Table.tsx +197 -197
  146. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  147. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  148. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  149. package/src/components/TableComponent/index.tsx +1 -1
  150. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  151. package/src/components/TableComponent/styles.tsx +170 -170
  152. package/src/components/TableComponent/types.ts +57 -57
  153. package/src/components/Tabs/Tabs.tsx +52 -52
  154. package/src/components/Tabs/TabsContainer.tsx +50 -50
  155. package/src/components/Tabs/index.tsx +1 -1
  156. package/src/components/Tabs/styles.tsx +55 -55
  157. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  158. package/src/components/ToastContainer/index.tsx +1 -1
  159. package/src/components/UploadButton/UploadButton.tsx +126 -126
  160. package/src/components/UploadButton/index.tsx +1 -1
  161. package/src/components/UploadButton/types.ts +19 -19
  162. package/src/components/UploadDocument.tsx +108 -108
  163. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  164. package/src/components/UploadFileDialog/index.tsx +1 -1
  165. package/src/components/index.ts +89 -89
  166. package/src/config/axios.ts +73 -73
  167. package/src/config/axiosEvaluator.ts +53 -53
  168. package/src/config/axiosXTenant.ts +57 -57
  169. package/src/constants/UIConstants.ts +97 -97
  170. package/src/constants/formValidations.ts +6 -6
  171. package/src/constants/index.ts +5 -5
  172. package/src/constants/isDevelopment.ts +3 -3
  173. package/src/constants/permissions.ts +67 -67
  174. package/src/constants/validateMessages.ts +12 -12
  175. package/src/contexts/LoginFormProvider.tsx +39 -39
  176. package/src/contexts/Providers.tsx +73 -73
  177. package/src/contexts/PublicProviders.tsx +30 -30
  178. package/src/contexts/QueryClientProvider.tsx +22 -22
  179. package/src/hooks/index.ts +3 -3
  180. package/src/hooks/useAuth.ts +96 -96
  181. package/src/hooks/useFetch.ts +53 -53
  182. package/src/hooks/useRouter.ts +31 -31
  183. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  184. package/src/layouts/Components/icons/index.tsx +403 -403
  185. package/src/layouts/Components/styles.tsx +74 -74
  186. package/src/layouts/ComponentsLayout.tsx +3 -3
  187. package/src/permissions/PageWithPermission.tsx +18 -18
  188. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  189. package/src/permissions/ValidateAccess.tsx +18 -18
  190. package/src/permissions/index.ts +2 -2
  191. package/src/react-app-env.d.ts +1 -1
  192. package/src/shared-state/AssetsStore.ts +15 -15
  193. package/src/shared-state/PermissionsStore.ts +352 -352
  194. package/src/shared-state/UserStore.ts +13 -13
  195. package/src/shared-state/index.ts +4 -4
  196. package/src/theme/App.less +3 -3
  197. package/src/theme/MuiThemeProvider.tsx +13 -13
  198. package/src/theme/customCssBaseline.ts +78 -78
  199. package/src/theme/index.css +75 -75
  200. package/src/theme/muiTheme.ts +560 -560
  201. package/src/theme/theme.d.ts +75 -75
  202. package/src/utils/alphabet.ts +23 -23
  203. package/src/utils/arrayPadEnd.ts +3 -3
  204. package/src/utils/formatCurrency.ts +9 -9
  205. package/src/utils/getUrlParams.ts +5 -5
  206. package/src/utils/index.ts +7 -7
  207. package/src/utils/logout.ts +24 -24
  208. package/src/utils/ordinalSuffixOf.ts +14 -14
  209. package/src/utils/romanize.ts +40 -40
  210. package/src/utils/withRouteWrapper.tsx +25 -25
  211. package/src/utils/withSuspense.tsx +6 -6
  212. package/styled-components.tsx +60 -60
  213. package/tsconfig.json +21 -21
  214. package/yarn-error.log +0 -109
@@ -1,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
+ }