@campxdev/shared 0.5.19 → 0.5.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 (200) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +15 -15
  3. package/package.json +52 -52
  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 +73 -73
  13. package/src/components/Card.tsx +97 -97
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +164 -164
  16. package/src/components/Chips.tsx +77 -77
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +40 -40
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +63 -63
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton.tsx +190 -190
  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 +26 -26
  30. package/src/components/FullCalendar/Actions.tsx +162 -162
  31. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  32. package/src/components/FullScreenLoader.tsx +19 -19
  33. package/src/components/HookForm/AutoCompleteSearch.tsx +143 -143
  34. package/src/components/HookForm/DatePicker.tsx +65 -65
  35. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  36. package/src/components/HookForm/FormLabel.tsx +14 -14
  37. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  38. package/src/components/HookForm/MultiSelect.tsx +100 -100
  39. package/src/components/HookForm/RadioGroup.tsx +112 -112
  40. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  41. package/src/components/HookForm/SingleSelect.tsx +93 -93
  42. package/src/components/HookForm/TextField.tsx +74 -74
  43. package/src/components/HookForm/TimePicker.tsx +82 -82
  44. package/src/components/HookForm/index.ts +23 -23
  45. package/src/components/IconButtons/IconButtons.tsx +137 -137
  46. package/src/components/IconButtons/Icons.tsx +268 -268
  47. package/src/components/IconButtons/assets/edit.svg +4 -4
  48. package/src/components/IconButtons/assets/eye.svg +6 -6
  49. package/src/components/IconButtons/assets/trash.svg +7 -7
  50. package/src/components/IconButtons/index.tsx +8 -8
  51. package/src/components/IconLabel.tsx +37 -37
  52. package/src/components/Image/Image.tsx +43 -43
  53. package/src/components/Image/index.tsx +1 -1
  54. package/src/components/ImageUpload.tsx +98 -98
  55. package/src/components/Input/AutoCompleteSearch.tsx +143 -143
  56. package/src/components/Input/DatePicker.tsx +60 -60
  57. package/src/components/Input/DateRangePicker.tsx +131 -131
  58. package/src/components/Input/DateTimePicker.tsx +70 -70
  59. package/src/components/Input/FormLabel.tsx +14 -14
  60. package/src/components/Input/MultiCheckbox.tsx +79 -79
  61. package/src/components/Input/MultiSelect.tsx +52 -52
  62. package/src/components/Input/RadioGroup.tsx +55 -55
  63. package/src/components/Input/SingleCheckbox.tsx +23 -23
  64. package/src/components/Input/SingleSelect.tsx +139 -139
  65. package/src/components/Input/TextField.tsx +50 -50
  66. package/src/components/Input/TimePicker.tsx +82 -82
  67. package/src/components/Input/index.ts +26 -26
  68. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  69. package/src/components/JsonPreview/index.tsx +1 -1
  70. package/src/components/LabelValue/LabelValue.tsx +21 -21
  71. package/src/components/LabelValue/index.tsx +1 -1
  72. package/src/components/Layout/ChangePassword.tsx +49 -49
  73. package/src/components/Layout/Header/AppHeader.tsx +113 -113
  74. package/src/components/Layout/Header/AppsMenu.tsx +92 -92
  75. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  76. package/src/components/Layout/Header/FreshDeskHelpButton.tsx +19 -19
  77. package/src/components/Layout/Header/Notification.tsx +13 -13
  78. package/src/components/Layout/Header/UserBox.tsx +70 -70
  79. package/src/components/Layout/Header/applications.ts +87 -87
  80. package/src/components/Layout/Header/assets/campx.svg +29 -29
  81. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  82. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  83. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  84. package/src/components/Layout/Header/assets/index.ts +23 -23
  85. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  86. package/src/components/Layout/Header/assets/payxHeader.svg +21 -21
  87. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  88. package/src/components/Layout/Header/assets/peoplexHeader.svg +14 -14
  89. package/src/components/Layout/Header/icons.tsx +57 -57
  90. package/src/components/Layout/Header/index.tsx +1 -1
  91. package/src/components/Layout/Header/styles.tsx +98 -98
  92. package/src/components/LayoutWrapper.tsx +25 -25
  93. package/src/components/LinearProgress.tsx +19 -19
  94. package/src/components/ListItemButton.tsx +94 -94
  95. package/src/components/LoginForm.tsx +103 -103
  96. package/src/components/MediaRow/MediaRow.tsx +69 -69
  97. package/src/components/MediaRow/index.tsx +1 -1
  98. package/src/components/MenuButton.tsx +103 -103
  99. package/src/components/ModalButtons/DialogButton.tsx +85 -85
  100. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  101. package/src/components/ModalButtons/index.tsx +4 -4
  102. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  103. package/src/components/NoDataIllustration/index.tsx +1 -1
  104. package/src/components/PageContent.tsx +17 -17
  105. package/src/components/PageHeader.tsx +52 -52
  106. package/src/components/PageNotFound.tsx +26 -26
  107. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  108. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  109. package/src/components/PopupConfirm/index.tsx +1 -1
  110. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  111. package/src/components/Row/Row.tsx +24 -24
  112. package/src/components/Row/index.tsx +1 -1
  113. package/src/components/SearchBar/SearchBar.tsx +53 -53
  114. package/src/components/SearchBar/index.tsx +1 -1
  115. package/src/components/SideMenuHeader.tsx +29 -29
  116. package/src/components/SideNav.tsx +150 -150
  117. package/src/components/Spinner.tsx +18 -18
  118. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  119. package/src/components/StepsHeader/index.tsx +1 -1
  120. package/src/components/Styled/OutlinedIconButton.tsx +7 -7
  121. package/src/components/Styled/index.tsx +1 -1
  122. package/src/components/StyledTableContainer.tsx +33 -33
  123. package/src/components/Swiper/Swiper.tsx +39 -39
  124. package/src/components/Swiper/index.tsx +1 -1
  125. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  126. package/src/components/SwitchButton/index.tsx +1 -1
  127. package/src/components/Table.tsx +42 -42
  128. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  129. package/src/components/TableComponent/Icons/index.tsx +50 -50
  130. package/src/components/TableComponent/ReactTable.tsx +293 -293
  131. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  132. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  133. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  134. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  135. package/src/components/TableComponent/index.tsx +221 -221
  136. package/src/components/TableComponent/react-table-config.d.ts +129 -129
  137. package/src/components/TableComponent/styles.tsx +173 -173
  138. package/src/components/TableComponent/types.ts +57 -57
  139. package/src/components/Tabs/Tabs.tsx +52 -52
  140. package/src/components/Tabs/TabsContainer.tsx +50 -50
  141. package/src/components/Tabs/index.tsx +1 -1
  142. package/src/components/Tabs/styles.tsx +55 -55
  143. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  144. package/src/components/ToastContainer/index.tsx +1 -1
  145. package/src/components/UploadButton/UploadButton.tsx +98 -98
  146. package/src/components/UploadButton/index.tsx +1 -1
  147. package/src/components/UploadButton/types.ts +14 -14
  148. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  149. package/src/components/UploadDocument/index.tsx +1 -1
  150. package/src/components/UploadFileDialog/UploadFileDialog.tsx +240 -240
  151. package/src/components/UploadFileDialog/index.tsx +1 -1
  152. package/src/components/index.ts +82 -82
  153. package/src/config/axios.ts +73 -73
  154. package/src/constants/UIConstants.ts +97 -97
  155. package/src/constants/formValidations.ts +6 -6
  156. package/src/constants/index.ts +5 -5
  157. package/src/constants/isDevelopment.ts +3 -3
  158. package/src/constants/permissions.ts +67 -67
  159. package/src/constants/validateMessages.ts +12 -12
  160. package/src/contexts/LoginFormProvider.tsx +39 -39
  161. package/src/contexts/Providers.tsx +57 -58
  162. package/src/contexts/QueryClientProvider.tsx +22 -22
  163. package/src/hooks/index.ts +3 -3
  164. package/src/hooks/useAppInit.ts +33 -27
  165. package/src/hooks/useAuth.ts +90 -90
  166. package/src/hooks/useFetch.ts +53 -53
  167. package/src/hooks/useRouter.ts +31 -31
  168. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  169. package/src/layouts/Components/icons/index.tsx +403 -403
  170. package/src/layouts/Components/styles.tsx +60 -60
  171. package/src/layouts/ComponentsLayout.tsx +3 -3
  172. package/src/permissions/PageWithPermission.tsx +18 -18
  173. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  174. package/src/permissions/PermissionsStore.ts +352 -295
  175. package/src/permissions/ValidateAccess.tsx +18 -18
  176. package/src/permissions/index.ts +3 -3
  177. package/src/react-app-env.d.ts +1 -1
  178. package/src/shared-state/AssetsStore.ts +15 -15
  179. package/src/shared-state/UserStore.ts +13 -13
  180. package/src/shared-state/index.ts +3 -3
  181. package/src/theme/App.less +3 -3
  182. package/src/theme/MuiThemeProvider.tsx +13 -13
  183. package/src/theme/customCssBaseline.ts +78 -78
  184. package/src/theme/index.css +75 -75
  185. package/src/theme/muiTheme.ts +516 -516
  186. package/src/theme/theme.d.ts +75 -75
  187. package/src/utils/alphabet.ts +23 -23
  188. package/src/utils/arrayPadEnd.ts +3 -3
  189. package/src/utils/formatCurrency.ts +9 -9
  190. package/src/utils/getUrlParams.ts +5 -5
  191. package/src/utils/index.ts +8 -8
  192. package/src/utils/logout.ts +24 -24
  193. package/src/utils/ordinalSuffixOf.ts +14 -14
  194. package/src/utils/romanize.ts +40 -40
  195. package/src/utils/withLocalization.tsx +11 -11
  196. package/src/utils/withRouteWrapper.tsx +25 -25
  197. package/src/utils/withSuspense.tsx +6 -6
  198. package/styled-components.tsx +60 -60
  199. package/todo.md +8 -8
  200. package/tsconfig.json +21 -21
@@ -1,98 +1,98 @@
1
- import { Button, CircularProgress, styled } from '@mui/material'
2
- import { useRef, useState } from 'react'
3
- import { toast } from 'react-toastify'
4
- import axios from '../../config/axios'
5
- import { UploadButtonProps } from './types'
6
-
7
- const getAccept = (type: UploadButtonProps['type']) => {
8
- switch (type) {
9
- case 'file':
10
- return '.xlsx,.xls,.doc, .docx,.ppt, .pptx,.txt,.pdf'
11
- case 'image':
12
- return 'image/*'
13
- case 'video':
14
- return 'video/*'
15
- case 'audio':
16
- return 'audio/*'
17
- }
18
- }
19
-
20
- export default function UploadButton({
21
- type,
22
- onChange,
23
- uploadUrl,
24
- onSuccess,
25
- }: UploadButtonProps) {
26
- const [loading, setLoading] = useState<boolean>(false)
27
-
28
- const formRef: any = useRef()
29
- const fileInputRef: any = useRef()
30
-
31
- const handleChange = (e: any) => {
32
- if (e.target.files[0]) {
33
- const formData = new FormData()
34
- formData.append('file', e.target.files[0])
35
- setLoading(true)
36
- axios
37
- .post(uploadUrl, formData)
38
- .then((res) => {
39
- onChange({
40
- url: res.data.url,
41
- key: res.data.key,
42
- type: type,
43
- fileName: res.data?.mediaObject?.originalFileName ?? '',
44
- id: res.data?.mediaObject?.id ?? '',
45
- })
46
- setLoading(false)
47
- if (onSuccess) onSuccess()
48
- formRef?.current.reset()
49
- })
50
- .catch((err) => {
51
- setLoading(false)
52
- toast.error(
53
- err?.response?.data?.message ?? 'Server Error While Uploading File',
54
- )
55
- formRef?.current.reset()
56
- })
57
- }
58
- }
59
-
60
- return (
61
- <>
62
- <form ref={formRef}>
63
- <input
64
- ref={fileInputRef}
65
- type="file"
66
- style={{ display: 'none' }}
67
- accept={getAccept(type)}
68
- onChange={handleChange}
69
- />
70
- <StyledButton
71
- fullWidth
72
- endIcon={loading ? <CircularProgress size={16} /> : null}
73
- variant="outlined"
74
- disabled={loading}
75
- size={'large'}
76
- onClick={() => fileInputRef.current.click()}
77
- >
78
- {getLabel(type)}
79
- </StyledButton>
80
- </form>
81
- </>
82
- )
83
- }
84
-
85
- const getLabel = (type) => {
86
- switch (type) {
87
- case 'file':
88
- return 'File'
89
- case 'image':
90
- return 'Image'
91
- case 'video':
92
- return 'Video'
93
- case 'audio':
94
- return 'Audio'
95
- }
96
- }
97
-
98
- const StyledButton = styled(Button)(({ theme }) => ({}))
1
+ import { Button, CircularProgress, styled } from '@mui/material'
2
+ import { useRef, useState } from 'react'
3
+ import { toast } from 'react-toastify'
4
+ import axios from '../../config/axios'
5
+ import { UploadButtonProps } from './types'
6
+
7
+ const getAccept = (type: UploadButtonProps['type']) => {
8
+ switch (type) {
9
+ case 'file':
10
+ return '.xlsx,.xls,.doc, .docx,.ppt, .pptx,.txt,.pdf'
11
+ case 'image':
12
+ return 'image/*'
13
+ case 'video':
14
+ return 'video/*'
15
+ case 'audio':
16
+ return 'audio/*'
17
+ }
18
+ }
19
+
20
+ export default function UploadButton({
21
+ type,
22
+ onChange,
23
+ uploadUrl,
24
+ onSuccess,
25
+ }: UploadButtonProps) {
26
+ const [loading, setLoading] = useState<boolean>(false)
27
+
28
+ const formRef: any = useRef()
29
+ const fileInputRef: any = useRef()
30
+
31
+ const handleChange = (e: any) => {
32
+ if (e.target.files[0]) {
33
+ const formData = new FormData()
34
+ formData.append('file', e.target.files[0])
35
+ setLoading(true)
36
+ axios
37
+ .post(uploadUrl, formData)
38
+ .then((res) => {
39
+ onChange({
40
+ url: res.data.url,
41
+ key: res.data.key,
42
+ type: type,
43
+ fileName: res.data?.mediaObject?.originalFileName ?? '',
44
+ id: res.data?.mediaObject?.id ?? '',
45
+ })
46
+ setLoading(false)
47
+ if (onSuccess) onSuccess()
48
+ formRef?.current.reset()
49
+ })
50
+ .catch((err) => {
51
+ setLoading(false)
52
+ toast.error(
53
+ err?.response?.data?.message ?? 'Server Error While Uploading File',
54
+ )
55
+ formRef?.current.reset()
56
+ })
57
+ }
58
+ }
59
+
60
+ return (
61
+ <>
62
+ <form ref={formRef}>
63
+ <input
64
+ ref={fileInputRef}
65
+ type="file"
66
+ style={{ display: 'none' }}
67
+ accept={getAccept(type)}
68
+ onChange={handleChange}
69
+ />
70
+ <StyledButton
71
+ fullWidth
72
+ endIcon={loading ? <CircularProgress size={16} /> : null}
73
+ variant="outlined"
74
+ disabled={loading}
75
+ size={'large'}
76
+ onClick={() => fileInputRef.current.click()}
77
+ >
78
+ {getLabel(type)}
79
+ </StyledButton>
80
+ </form>
81
+ </>
82
+ )
83
+ }
84
+
85
+ const getLabel = (type) => {
86
+ switch (type) {
87
+ case 'file':
88
+ return 'File'
89
+ case 'image':
90
+ return 'Image'
91
+ case 'video':
92
+ return 'Video'
93
+ case 'audio':
94
+ return 'Audio'
95
+ }
96
+ }
97
+
98
+ const StyledButton = styled(Button)(({ theme }) => ({}))
@@ -1 +1 @@
1
- export { default } from './UploadButton'
1
+ export { default } from './UploadButton'
@@ -1,14 +1,14 @@
1
- interface Media {
2
- type: 'image' | 'video' | 'audio' | 'file'
3
- url: string
4
- key: string
5
- fileName?: string
6
- id?: any
7
- }
8
- interface UploadButtonProps {
9
- type: 'file' | 'image' | 'video' | 'audio'
10
- onChange: (res: Media) => void
11
- uploadUrl: string
12
- onSuccess?: () => void
13
- }
14
- export type { Media, UploadButtonProps }
1
+ interface Media {
2
+ type: 'image' | 'video' | 'audio' | 'file'
3
+ url: string
4
+ key: string
5
+ fileName?: string
6
+ id?: any
7
+ }
8
+ interface UploadButtonProps {
9
+ type: 'file' | 'image' | 'video' | 'audio'
10
+ onChange: (res: Media) => void
11
+ uploadUrl: string
12
+ onSuccess?: () => void
13
+ }
14
+ export type { Media, UploadButtonProps }
@@ -1,108 +1,108 @@
1
- import { Box, CircularProgress, Stack, styled, Typography } from '@mui/material'
2
- import { ReactNode, useRef, useState } from 'react'
3
- import AttachFileIcon from '@mui/icons-material/AttachFile'
4
- import { toast } from 'react-toastify'
5
- import axios from '../../config/axios'
6
-
7
- export default function UploadDocument({
8
- accept = '.doc,.docx,.pdf',
9
- styledUpload,
10
- postUrl,
11
- postBody,
12
- styleProps,
13
- refetchFn,
14
- width,
15
- height,
16
- }: {
17
- accept?: string
18
- styledUpload?: ReactNode
19
- postUrl: string
20
- postBody?: object
21
- refetchFn?: () => void
22
- styleProps?: any
23
- width?: string
24
- height?: string
25
- }) {
26
- const [loading, setLoading] = useState(false)
27
- const fileRef = useRef<any>()
28
-
29
- const handleChange = (e) => {
30
- if (e.target.files[0]) {
31
- const formData = new FormData()
32
- formData.append('file', e.target.files[0])
33
- if (postBody) {
34
- Object?.keys(postBody)?.forEach((key) => {
35
- formData?.append(key, postBody[key])
36
- })
37
- }
38
-
39
- setLoading(true)
40
- axios
41
- .post(postUrl, formData)
42
- .then((res) => {
43
- setLoading(false)
44
- refetchFn()
45
- })
46
- .catch((err) => {
47
- setLoading(false)
48
- toast.error('Server Error While Uploading File')
49
- })
50
- }
51
- }
52
-
53
- return (
54
- <>
55
- {styledUpload ? (
56
- <div
57
- onClick={() => {
58
- fileRef.current.click()
59
- }}
60
- style={{
61
- display: 'flex',
62
- justifyContent: 'center',
63
- alignItems: 'center',
64
- ...styleProps,
65
- }}
66
- >
67
- {loading ? <CircularProgress size={30} /> : styledUpload}
68
- </div>
69
- ) : (
70
- <StyledImageLabel
71
- onClick={() => {
72
- fileRef.current.click()
73
- }}
74
- >
75
- <AttachFileIcon />
76
- <Typography sx={{ opacity: '0.6' }}>
77
- {loading ? 'Uploading...' : `Upload File`}
78
- </Typography>
79
- </StyledImageLabel>
80
- )}
81
- <input
82
- type="file"
83
- ref={fileRef}
84
- style={{ display: 'none' }}
85
- accept={accept}
86
- onChange={handleChange}
87
- />
88
- </>
89
- )
90
- }
91
-
92
- export const StyledImageLabel = styled('div')(({ theme }) => ({
93
- cursor: 'pointer',
94
- borderRadius: '10px',
95
- width: '100%',
96
- height: '150px',
97
- border: '1px dashed #0000001A',
98
- display: 'flex',
99
- flexDirection: 'column',
100
- justifyContent: 'center',
101
- alignItems: 'center',
102
- '&:hover': {
103
- backgroundColor: '#EFEFEF',
104
- },
105
- '& > *': {
106
- color: theme.palette.text.disabled,
107
- },
108
- }))
1
+ import { Box, CircularProgress, Stack, styled, Typography } from '@mui/material'
2
+ import { ReactNode, useRef, useState } from 'react'
3
+ import AttachFileIcon from '@mui/icons-material/AttachFile'
4
+ import { toast } from 'react-toastify'
5
+ import axios from '../../config/axios'
6
+
7
+ export default function UploadDocument({
8
+ accept = '.doc,.docx,.pdf',
9
+ styledUpload,
10
+ postUrl,
11
+ postBody,
12
+ styleProps,
13
+ refetchFn,
14
+ width,
15
+ height,
16
+ }: {
17
+ accept?: string
18
+ styledUpload?: ReactNode
19
+ postUrl: string
20
+ postBody?: object
21
+ refetchFn?: () => void
22
+ styleProps?: any
23
+ width?: string
24
+ height?: string
25
+ }) {
26
+ const [loading, setLoading] = useState(false)
27
+ const fileRef = useRef<any>()
28
+
29
+ const handleChange = (e) => {
30
+ if (e.target.files[0]) {
31
+ const formData = new FormData()
32
+ formData.append('file', e.target.files[0])
33
+ if (postBody) {
34
+ Object?.keys(postBody)?.forEach((key) => {
35
+ formData?.append(key, postBody[key])
36
+ })
37
+ }
38
+
39
+ setLoading(true)
40
+ axios
41
+ .post(postUrl, formData)
42
+ .then((res) => {
43
+ setLoading(false)
44
+ refetchFn()
45
+ })
46
+ .catch((err) => {
47
+ setLoading(false)
48
+ toast.error('Server Error While Uploading File')
49
+ })
50
+ }
51
+ }
52
+
53
+ return (
54
+ <>
55
+ {styledUpload ? (
56
+ <div
57
+ onClick={() => {
58
+ fileRef.current.click()
59
+ }}
60
+ style={{
61
+ display: 'flex',
62
+ justifyContent: 'center',
63
+ alignItems: 'center',
64
+ ...styleProps,
65
+ }}
66
+ >
67
+ {loading ? <CircularProgress size={30} /> : styledUpload}
68
+ </div>
69
+ ) : (
70
+ <StyledImageLabel
71
+ onClick={() => {
72
+ fileRef.current.click()
73
+ }}
74
+ >
75
+ <AttachFileIcon />
76
+ <Typography sx={{ opacity: '0.6' }}>
77
+ {loading ? 'Uploading...' : `Upload File`}
78
+ </Typography>
79
+ </StyledImageLabel>
80
+ )}
81
+ <input
82
+ type="file"
83
+ ref={fileRef}
84
+ style={{ display: 'none' }}
85
+ accept={accept}
86
+ onChange={handleChange}
87
+ />
88
+ </>
89
+ )
90
+ }
91
+
92
+ export const StyledImageLabel = styled('div')(({ theme }) => ({
93
+ cursor: 'pointer',
94
+ borderRadius: '10px',
95
+ width: '100%',
96
+ height: '150px',
97
+ border: '1px dashed #0000001A',
98
+ display: 'flex',
99
+ flexDirection: 'column',
100
+ justifyContent: 'center',
101
+ alignItems: 'center',
102
+ '&:hover': {
103
+ backgroundColor: '#EFEFEF',
104
+ },
105
+ '& > *': {
106
+ color: theme.palette.text.disabled,
107
+ },
108
+ }))
@@ -1 +1 @@
1
- export { default } from './UploadDocument'
1
+ export { default } from './UploadDocument'