@campxdev/shared 1.1.3 → 1.1.5

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