@campxdev/shared 1.5.7 → 1.5.9

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