@campxdev/shared 0.3.12 → 0.3.13

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 (181) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +15 -15
  3. package/package.json +51 -51
  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 +16 -16
  7. package/src/components/ActionButton.tsx +28 -28
  8. package/src/components/Attachment.tsx +26 -26
  9. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  10. package/src/components/AutocompleteSearch/index.tsx +1 -1
  11. package/src/components/Breadcrumbs.tsx +73 -73
  12. package/src/components/Card.tsx +97 -97
  13. package/src/components/CardsGrid.tsx +28 -28
  14. package/src/components/Chips.tsx +77 -77
  15. package/src/components/Detail.tsx +15 -15
  16. package/src/components/DetailsGrid.tsx +52 -52
  17. package/src/components/DividerHeading.tsx +40 -40
  18. package/src/components/DrawerWrapper/DialogWrapper.tsx +63 -63
  19. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  20. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  21. package/src/components/DropDownButton.tsx +184 -184
  22. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  23. package/src/components/ErrorBoundary/ErrorFallback.tsx +180 -180
  24. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  25. package/src/components/ErrorBoundary/index.tsx +1 -1
  26. package/src/components/ErrorBox.tsx +42 -42
  27. package/src/components/FloatingContainer.tsx +26 -26
  28. package/src/components/FullCalendar/Actions.tsx +162 -162
  29. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  30. package/src/components/FullScreenLoader.tsx +19 -19
  31. package/src/components/HookForm/AutoCompleteSearch.tsx +143 -143
  32. package/src/components/HookForm/DatePicker.tsx +65 -65
  33. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  34. package/src/components/HookForm/FormLabel.tsx +14 -14
  35. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  36. package/src/components/HookForm/MultiSelect.tsx +100 -100
  37. package/src/components/HookForm/RadioGroup.tsx +112 -112
  38. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  39. package/src/components/HookForm/SingleSelect.tsx +93 -93
  40. package/src/components/HookForm/TextField.tsx +74 -74
  41. package/src/components/HookForm/TimePicker.tsx +82 -82
  42. package/src/components/HookForm/index.ts +23 -23
  43. package/src/components/IconButtons/IconButtons.tsx +137 -137
  44. package/src/components/IconButtons/Icons.tsx +268 -268
  45. package/src/components/IconButtons/assets/edit.svg +4 -4
  46. package/src/components/IconButtons/assets/eye.svg +6 -6
  47. package/src/components/IconButtons/assets/trash.svg +7 -7
  48. package/src/components/IconButtons/index.tsx +8 -8
  49. package/src/components/IconLabel.tsx +37 -37
  50. package/src/components/Image/Image.tsx +43 -43
  51. package/src/components/Image/index.tsx +1 -1
  52. package/src/components/ImageUpload.tsx +98 -98
  53. package/src/components/Input/AutoCompleteSearch.tsx +143 -143
  54. package/src/components/Input/DatePicker.tsx +60 -60
  55. package/src/components/Input/DateRangePicker.tsx +131 -131
  56. package/src/components/Input/DateTimePicker.tsx +70 -70
  57. package/src/components/Input/FormLabel.tsx +14 -14
  58. package/src/components/Input/MultiCheckbox.tsx +79 -79
  59. package/src/components/Input/MultiSelect.tsx +52 -52
  60. package/src/components/Input/RadioGroup.tsx +55 -55
  61. package/src/components/Input/SingleCheckbox.tsx +23 -23
  62. package/src/components/Input/SingleSelect.tsx +139 -139
  63. package/src/components/Input/TextField.tsx +50 -50
  64. package/src/components/Input/TimePicker.tsx +82 -82
  65. package/src/components/Input/index.ts +26 -26
  66. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  67. package/src/components/JsonPreview/index.tsx +1 -1
  68. package/src/components/LabelValue/LabelValue.tsx +21 -21
  69. package/src/components/LabelValue/index.tsx +1 -1
  70. package/src/components/Layout/ChangePassword.tsx +49 -49
  71. package/src/components/Layout/Header/AppHeader.tsx +120 -120
  72. package/src/components/Layout/Header/AppsMenu.tsx +85 -85
  73. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  74. package/src/components/Layout/Header/FreshDeskHelpButton.tsx +19 -19
  75. package/src/components/Layout/Header/Notification.tsx +13 -13
  76. package/src/components/Layout/Header/UserBox.tsx +42 -42
  77. package/src/components/Layout/Header/applications.tsx +60 -60
  78. package/src/components/Layout/Header/assets/index.ts +7 -7
  79. package/src/components/Layout/Header/icons.tsx +57 -57
  80. package/src/components/Layout/Header/index.tsx +1 -1
  81. package/src/components/Layout/Header/styles.tsx +91 -91
  82. package/src/components/LinearProgress.tsx +19 -19
  83. package/src/components/LoginForm.tsx +103 -103
  84. package/src/components/MediaRow/MediaRow.tsx +69 -69
  85. package/src/components/MediaRow/index.tsx +1 -1
  86. package/src/components/MenuButton.tsx +103 -103
  87. package/src/components/ModalButtons/DialogButton.tsx +85 -85
  88. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  89. package/src/components/ModalButtons/index.tsx +4 -4
  90. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  91. package/src/components/NoDataIllustration/index.tsx +1 -1
  92. package/src/components/PageContent.tsx +17 -17
  93. package/src/components/PageHeader.tsx +52 -52
  94. package/src/components/PageNotFound.tsx +25 -25
  95. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  96. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  97. package/src/components/PopupConfirm/index.tsx +1 -1
  98. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  99. package/src/components/Row/Row.tsx +24 -24
  100. package/src/components/Row/index.tsx +1 -1
  101. package/src/components/SearchBar/SearchBar.tsx +53 -53
  102. package/src/components/SearchBar/index.tsx +1 -1
  103. package/src/components/Spinner.tsx +18 -18
  104. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  105. package/src/components/StepsHeader/index.tsx +1 -1
  106. package/src/components/Styled/OutlinedIconButton.tsx +7 -7
  107. package/src/components/Styled/index.tsx +1 -1
  108. package/src/components/StyledTableContainer.tsx +33 -33
  109. package/src/components/Swiper/Swiper.tsx +39 -39
  110. package/src/components/Swiper/index.tsx +1 -1
  111. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  112. package/src/components/SwitchButton/index.tsx +1 -1
  113. package/src/components/Table.tsx +42 -42
  114. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  115. package/src/components/TableComponent/Icons/index.tsx +50 -50
  116. package/src/components/TableComponent/ReactTable.tsx +293 -293
  117. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  118. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  119. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  120. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  121. package/src/components/TableComponent/index.tsx +221 -221
  122. package/src/components/TableComponent/react-table-config.d.ts +129 -129
  123. package/src/components/TableComponent/styles.tsx +173 -173
  124. package/src/components/TableComponent/types.ts +57 -57
  125. package/src/components/Tabs/Tabs.tsx +52 -52
  126. package/src/components/Tabs/TabsContainer.tsx +50 -50
  127. package/src/components/Tabs/index.tsx +1 -1
  128. package/src/components/Tabs/styles.tsx +55 -55
  129. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  130. package/src/components/ToastContainer/index.tsx +1 -1
  131. package/src/components/UploadButton/UploadButton.tsx +98 -98
  132. package/src/components/UploadButton/index.tsx +1 -1
  133. package/src/components/UploadButton/types.ts +14 -14
  134. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  135. package/src/components/UploadDocument/index.tsx +1 -1
  136. package/src/components/UploadFileDialog/UploadFileDialog.tsx +240 -240
  137. package/src/components/UploadFileDialog/index.tsx +1 -1
  138. package/src/components/index.ts +67 -67
  139. package/src/config/axios.ts +73 -72
  140. package/src/constants/UIConstants.ts +97 -97
  141. package/src/constants/formValidations.ts +6 -6
  142. package/src/constants/index.ts +5 -5
  143. package/src/constants/isDevelopment.ts +3 -3
  144. package/src/constants/permissions.ts +67 -67
  145. package/src/constants/validateMessages.ts +12 -12
  146. package/src/contexts/LoginFormProvider.tsx +39 -39
  147. package/src/contexts/Providers.tsx +27 -27
  148. package/src/contexts/QueryClientProvider.tsx +22 -22
  149. package/src/hooks/index.ts +3 -3
  150. package/src/hooks/useAuth.ts +77 -77
  151. package/src/hooks/useFetch.ts +53 -53
  152. package/src/hooks/useRouter.ts +31 -31
  153. package/src/layouts/ComponentsLayout.tsx +3 -3
  154. package/src/permissions/PageWithPermission.tsx +18 -18
  155. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  156. package/src/permissions/PermissionsStore.ts +291 -291
  157. package/src/permissions/ValidateAccess.tsx +18 -18
  158. package/src/permissions/index.ts +3 -3
  159. package/src/react-app-env.d.ts +1 -1
  160. package/src/shared-state/AssetsStore.ts +15 -15
  161. package/src/shared-state/UserStore.ts +13 -13
  162. package/src/shared-state/index.ts +3 -3
  163. package/src/theme/App.less +3 -3
  164. package/src/theme/MuiThemeProvider.tsx +13 -13
  165. package/src/theme/customCssBaseline.ts +78 -78
  166. package/src/theme/index.css +75 -75
  167. package/src/theme/muiTheme.ts +516 -516
  168. package/src/theme/theme.d.ts +75 -75
  169. package/src/utils/alphabet.ts +23 -23
  170. package/src/utils/arrayPadEnd.ts +3 -3
  171. package/src/utils/formatCurrency.ts +9 -9
  172. package/src/utils/getUrlParams.ts +5 -5
  173. package/src/utils/index.ts +8 -8
  174. package/src/utils/logout.ts +23 -23
  175. package/src/utils/ordinalSuffixOf.ts +14 -14
  176. package/src/utils/romanize.ts +40 -40
  177. package/src/utils/withLocalization.tsx +11 -11
  178. package/src/utils/withRouteWrapper.tsx +26 -26
  179. package/src/utils/withSuspense.tsx +6 -6
  180. package/styled-components.tsx +60 -60
  181. package/tsconfig.json +21 -21
@@ -1,180 +1,180 @@
1
- import {Alert, Box, Button, styled, Typography} from '@mui/material'
2
- import {
3
- internalserver,
4
- nointernet,
5
- pagenotfound,
6
- permissiondenied,
7
- unauth,
8
- } from '../../assets/images'
9
-
10
- const StyledAlert = styled(Alert)(({theme}) => ({
11
- border: `1px solid ${theme.palette.error.main}`,
12
- display: 'flex',
13
- alignItems: 'center',
14
- '& .MuiAlert-message': {
15
- padding: 0,
16
- },
17
- '& .MuiTypography-root': {
18
- margin: 0,
19
- },
20
- position: 'relative',
21
- '& .retryBtn': {
22
- color: '#661b2a',
23
- position: 'absolute',
24
- right: 8,
25
- top: 8,
26
- },
27
- }))
28
-
29
- const StyledBox = styled(Box)(({theme}) => ({
30
- width: '100%',
31
- display: 'flex',
32
- flexDirection: 'column',
33
- alignItems: 'center',
34
- justifyContent: 'center',
35
- }))
36
-
37
- export default function ErrorFallback({error, resetErrorBoundary}) {
38
- if (error?.response?.status) {
39
- switch (error?.response?.status) {
40
- case 401:
41
- return <UnAuth resetBoundary={resetErrorBoundary} />
42
-
43
- case 500:
44
- return <InternalServer resetBoundary={resetErrorBoundary} />
45
-
46
- case 403:
47
- return <PemissionDenied resetBoundary={resetErrorBoundary} />
48
-
49
- default:
50
- return <InternalServer resetBoundary={resetErrorBoundary} />
51
- }
52
- }
53
-
54
- if (error?.message === 'Network Error') {
55
- return <NoInternet resetBoundary={resetErrorBoundary} />
56
- }
57
-
58
- return (
59
- <Box sx={{marginTop: '16px', padding: '16px'}}>
60
- <StyledAlert severity='error'>
61
- {error?.response?.data?.message ?? error?.message}
62
- <Button
63
- className='retryBtn'
64
- onClick={() => resetErrorBoundary()}
65
- size='small'
66
- color='error'
67
- variant='outlined'
68
- >
69
- Try Again
70
- </Button>
71
- </StyledAlert>
72
- </Box>
73
- )
74
- }
75
-
76
- export function PageNotFound({resetBoundary}) {
77
- return (
78
- <>
79
- <StyledBox>
80
- <img
81
- src={pagenotfound}
82
- alt='page not found'
83
- width={470}
84
- style={{marginTop: '20px'}}
85
- />
86
- <Typography variant='h1'>Page Not Found.</Typography>
87
- <Button sx={{marginTop: '20px'}} onClick={() => resetBoundary()}>
88
- Try Again
89
- </Button>
90
- </StyledBox>
91
- </>
92
- )
93
- }
94
-
95
- export function NoInternet({resetBoundary}) {
96
- return (
97
- <>
98
- <StyledBox>
99
- <img src={nointernet} alt='No Internet Found' width={470} />
100
- <Typography variant='h1'>No Internet Found.</Typography>
101
- <Button sx={{marginTop: '20px'}} onClick={() => resetBoundary()}>
102
- Try Again
103
- </Button>
104
- </StyledBox>
105
- </>
106
- )
107
- }
108
-
109
- export function PemissionDenied({resetBoundary}) {
110
- return (
111
- <>
112
- <StyledBox>
113
- <img src={permissiondenied} alt='permission denied' width={470} />
114
- <Typography variant='h1'>Permission Denied.</Typography>
115
- <Button sx={{marginTop: '20px'}} onClick={() => resetBoundary()}>
116
- Try Again
117
- </Button>
118
- </StyledBox>
119
- </>
120
- )
121
- }
122
-
123
- export function InternalServer({resetBoundary}) {
124
- return (
125
- <>
126
- <StyledBox>
127
- <img src={internalserver} alt='internal server error' width={470} />
128
- <Typography variant='h1' marginTop={'20px'}>
129
- Internal Server Error.
130
- </Typography>
131
- <Button
132
- size='small'
133
- variant='outlined'
134
- sx={{marginTop: '20px'}}
135
- onClick={() => resetBoundary()}
136
- >
137
- Try Again
138
- </Button>
139
- </StyledBox>
140
- </>
141
- )
142
- }
143
-
144
- export function UnAuth({resetBoundary}) {
145
- const url = window.location.origin
146
- return (
147
- <>
148
- <StyledBox>
149
- <img src={unauth} alt='unauthorized' width={470} />
150
- <Typography variant='h1' marginTop={'20px'}>
151
- UnAuthorized.
152
- </Typography>
153
- <Box
154
- sx={{
155
- display: 'flex',
156
- marginTop: '20px',
157
- }}
158
- >
159
- <Button
160
- variant='outlined'
161
- sx={{marginRight: '10px'}}
162
- onClick={() => resetBoundary()}
163
- >
164
- Try Again
165
- </Button>
166
-
167
- <Button
168
- onClick={() =>
169
- window.location.replace(
170
- `https://www.id.campx.in/?redirect_to=${url}`
171
- )
172
- }
173
- >
174
- Click here to Login
175
- </Button>
176
- </Box>
177
- </StyledBox>
178
- </>
179
- )
180
- }
1
+ import {Alert, Box, Button, styled, Typography} from '@mui/material'
2
+ import {
3
+ internalserver,
4
+ nointernet,
5
+ pagenotfound,
6
+ permissiondenied,
7
+ unauth,
8
+ } from '../../assets/images'
9
+
10
+ const StyledAlert = styled(Alert)(({theme}) => ({
11
+ border: `1px solid ${theme.palette.error.main}`,
12
+ display: 'flex',
13
+ alignItems: 'center',
14
+ '& .MuiAlert-message': {
15
+ padding: 0,
16
+ },
17
+ '& .MuiTypography-root': {
18
+ margin: 0,
19
+ },
20
+ position: 'relative',
21
+ '& .retryBtn': {
22
+ color: '#661b2a',
23
+ position: 'absolute',
24
+ right: 8,
25
+ top: 8,
26
+ },
27
+ }))
28
+
29
+ const StyledBox = styled(Box)(({theme}) => ({
30
+ width: '100%',
31
+ display: 'flex',
32
+ flexDirection: 'column',
33
+ alignItems: 'center',
34
+ justifyContent: 'center',
35
+ }))
36
+
37
+ export default function ErrorFallback({error, resetErrorBoundary}) {
38
+ if (error?.response?.status) {
39
+ switch (error?.response?.status) {
40
+ case 401:
41
+ return <UnAuth resetBoundary={resetErrorBoundary} />
42
+
43
+ case 500:
44
+ return <InternalServer resetBoundary={resetErrorBoundary} />
45
+
46
+ case 403:
47
+ return <PemissionDenied resetBoundary={resetErrorBoundary} />
48
+
49
+ default:
50
+ return <InternalServer resetBoundary={resetErrorBoundary} />
51
+ }
52
+ }
53
+
54
+ if (error?.message === 'Network Error') {
55
+ return <NoInternet resetBoundary={resetErrorBoundary} />
56
+ }
57
+
58
+ return (
59
+ <Box sx={{marginTop: '16px', padding: '16px'}}>
60
+ <StyledAlert severity='error'>
61
+ {error?.response?.data?.message ?? error?.message}
62
+ <Button
63
+ className='retryBtn'
64
+ onClick={() => resetErrorBoundary()}
65
+ size='small'
66
+ color='error'
67
+ variant='outlined'
68
+ >
69
+ Try Again
70
+ </Button>
71
+ </StyledAlert>
72
+ </Box>
73
+ )
74
+ }
75
+
76
+ export function PageNotFound({resetBoundary}) {
77
+ return (
78
+ <>
79
+ <StyledBox>
80
+ <img
81
+ src={pagenotfound}
82
+ alt='page not found'
83
+ width={470}
84
+ style={{marginTop: '20px'}}
85
+ />
86
+ <Typography variant='h1'>Page Not Found.</Typography>
87
+ <Button sx={{marginTop: '20px'}} onClick={() => resetBoundary()}>
88
+ Try Again
89
+ </Button>
90
+ </StyledBox>
91
+ </>
92
+ )
93
+ }
94
+
95
+ export function NoInternet({resetBoundary}) {
96
+ return (
97
+ <>
98
+ <StyledBox>
99
+ <img src={nointernet} alt='No Internet Found' width={470} />
100
+ <Typography variant='h1'>No Internet Found.</Typography>
101
+ <Button sx={{marginTop: '20px'}} onClick={() => resetBoundary()}>
102
+ Try Again
103
+ </Button>
104
+ </StyledBox>
105
+ </>
106
+ )
107
+ }
108
+
109
+ export function PemissionDenied({resetBoundary}) {
110
+ return (
111
+ <>
112
+ <StyledBox>
113
+ <img src={permissiondenied} alt='permission denied' width={470} />
114
+ <Typography variant='h1'>Permission Denied.</Typography>
115
+ <Button sx={{marginTop: '20px'}} onClick={() => resetBoundary()}>
116
+ Try Again
117
+ </Button>
118
+ </StyledBox>
119
+ </>
120
+ )
121
+ }
122
+
123
+ export function InternalServer({resetBoundary}) {
124
+ return (
125
+ <>
126
+ <StyledBox>
127
+ <img src={internalserver} alt='internal server error' width={470} />
128
+ <Typography variant='h1' marginTop={'20px'}>
129
+ Internal Server Error.
130
+ </Typography>
131
+ <Button
132
+ size='small'
133
+ variant='outlined'
134
+ sx={{marginTop: '20px'}}
135
+ onClick={() => resetBoundary()}
136
+ >
137
+ Try Again
138
+ </Button>
139
+ </StyledBox>
140
+ </>
141
+ )
142
+ }
143
+
144
+ export function UnAuth({resetBoundary}) {
145
+ const url = window.location.origin
146
+ return (
147
+ <>
148
+ <StyledBox>
149
+ <img src={unauth} alt='unauthorized' width={470} />
150
+ <Typography variant='h1' marginTop={'20px'}>
151
+ UnAuthorized.
152
+ </Typography>
153
+ <Box
154
+ sx={{
155
+ display: 'flex',
156
+ marginTop: '20px',
157
+ }}
158
+ >
159
+ <Button
160
+ variant='outlined'
161
+ sx={{marginRight: '10px'}}
162
+ onClick={() => resetBoundary()}
163
+ >
164
+ Try Again
165
+ </Button>
166
+
167
+ <Button
168
+ onClick={() =>
169
+ window.location.replace(
170
+ `https://www.id.campx.in/?redirect_to=${url}`
171
+ )
172
+ }
173
+ >
174
+ Click here to Login
175
+ </Button>
176
+ </Box>
177
+ </StyledBox>
178
+ </>
179
+ )
180
+ }
@@ -1,13 +1,13 @@
1
- import {Store} from 'pullstate'
2
- import {LinearProgress} from '../LinearProgress'
3
-
4
- export const NetworkStore = new Store({
5
- loading: false,
6
- })
7
-
8
- export default function GlobalNetworkLoadingIndicator() {
9
- const {loading} = NetworkStore.useState()
10
-
11
- if (loading) return <LinearProgress />
12
- if (loading) return null
13
- }
1
+ import {Store} from 'pullstate'
2
+ import {LinearProgress} from '../LinearProgress'
3
+
4
+ export const NetworkStore = new Store({
5
+ loading: false,
6
+ })
7
+
8
+ export default function GlobalNetworkLoadingIndicator() {
9
+ const {loading} = NetworkStore.useState()
10
+
11
+ if (loading) return <LinearProgress />
12
+ if (loading) return null
13
+ }
@@ -1 +1 @@
1
- export {default} from './ErrorBoundary'
1
+ export {default} from './ErrorBoundary'
@@ -1,42 +1,42 @@
1
- import { Alert as MuiAlert, styled } from '@mui/material'
2
- import _ from 'lodash'
3
- import { ReactNode } from 'react'
4
-
5
- export default function ErrorBox({
6
- err,
7
- extra,
8
- }: {
9
- err: any
10
- extra?: string | ReactNode
11
- }) {
12
- if (!err) {
13
- return null
14
- }
15
-
16
- if (err.response) {
17
- if (err.response.status == 401) {
18
- return (
19
- <Alert severity={'error'}>
20
- {_.get(err, 'response.data.message', 'Server error!')} {extra}
21
- </Alert>
22
- )
23
- }
24
- if (err.response.status == 422) {
25
- return (
26
- <Alert severity={'error'}>
27
- {_.get(err, 'response.data.message', 'Server error!')} {extra}
28
- </Alert>
29
- )
30
- }
31
-
32
- return (
33
- <Alert severity={'error'}>
34
- {'Unknown Error'} {extra}
35
- </Alert>
36
- )
37
- }
38
- }
39
-
40
- const Alert = styled(MuiAlert)(({}) => ({
41
- marginTop: '20px',
42
- }))
1
+ import { Alert as MuiAlert, styled } from '@mui/material'
2
+ import _ from 'lodash'
3
+ import { ReactNode } from 'react'
4
+
5
+ export default function ErrorBox({
6
+ err,
7
+ extra,
8
+ }: {
9
+ err: any
10
+ extra?: string | ReactNode
11
+ }) {
12
+ if (!err) {
13
+ return null
14
+ }
15
+
16
+ if (err.response) {
17
+ if (err.response.status == 401) {
18
+ return (
19
+ <Alert severity={'error'}>
20
+ {_.get(err, 'response.data.message', 'Server error!')} {extra}
21
+ </Alert>
22
+ )
23
+ }
24
+ if (err.response.status == 422) {
25
+ return (
26
+ <Alert severity={'error'}>
27
+ {_.get(err, 'response.data.message', 'Server error!')} {extra}
28
+ </Alert>
29
+ )
30
+ }
31
+
32
+ return (
33
+ <Alert severity={'error'}>
34
+ {'Unknown Error'} {extra}
35
+ </Alert>
36
+ )
37
+ }
38
+ }
39
+
40
+ const Alert = styled(MuiAlert)(({}) => ({
41
+ marginTop: '20px',
42
+ }))
@@ -1,26 +1,26 @@
1
- import { Box, styled } from '@mui/material'
2
- export const StyledFooter = styled(Box)<{
3
- show: boolean
4
- }>`
5
- position: fixed;
6
- background: #fff;
7
- bottom: ${(props) => (props.show ? '0' : '-70px')};
8
- right: 16px;
9
- width: calc(100% - 236px);
10
- height: 64px;
11
- display: flex;
12
- justify-content: center;
13
- align-items: center;
14
- gap: 1.5rem;
15
- padding: 1rem;
16
- transition: bottom 400ms ease-in-out;
17
- box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
18
- `
19
- function FloatingContainer({ children, show }) {
20
- return (
21
- <>
22
- <StyledFooter show={show}>{children}</StyledFooter>
23
- </>
24
- )
25
- }
26
- export default FloatingContainer
1
+ import { Box, styled } from '@mui/material'
2
+ export const StyledFooter = styled(Box)<{
3
+ show: boolean
4
+ }>`
5
+ position: fixed;
6
+ background: #fff;
7
+ bottom: ${(props) => (props.show ? '0' : '-70px')};
8
+ right: 16px;
9
+ width: calc(100% - 236px);
10
+ height: 64px;
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ gap: 1.5rem;
15
+ padding: 1rem;
16
+ transition: bottom 400ms ease-in-out;
17
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
18
+ `
19
+ function FloatingContainer({ children, show }) {
20
+ return (
21
+ <>
22
+ <StyledFooter show={show}>{children}</StyledFooter>
23
+ </>
24
+ )
25
+ }
26
+ export default FloatingContainer