@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,40 +1,40 @@
1
- import {createContext, ReactNode, useState} from 'react'
2
- import PopupConfirm from './PopupConfirm'
3
-
4
- interface ConfirmContextProps {
5
- confirm: {
6
- prompt: ReactNode
7
- isOpen: boolean
8
- proceed: () => void
9
- cancel: () => void
10
- }
11
- setConfirm: any
12
- }
13
-
14
- export const ConfirmContext = createContext<ConfirmContextProps>({
15
- confirm: {
16
- cancel: () => {},
17
- proceed: () => {},
18
- prompt: 'Are you sure?',
19
- isOpen: false,
20
- },
21
- setConfirm: () => {},
22
- })
23
-
24
- const ConfirmContextProvider = ({children}) => {
25
- const [confirm, setConfirm] = useState({
26
- prompt: '',
27
- isOpen: false,
28
- proceed: null,
29
- cancel: null,
30
- })
31
-
32
- return (
33
- <ConfirmContext.Provider value={{confirm, setConfirm}}>
34
- {children}
35
- <PopupConfirm />
36
- </ConfirmContext.Provider>
37
- )
38
- }
39
-
40
- export default ConfirmContextProvider
1
+ import {createContext, ReactNode, useState} from 'react'
2
+ import PopupConfirm from './PopupConfirm'
3
+
4
+ interface ConfirmContextProps {
5
+ confirm: {
6
+ prompt: ReactNode
7
+ isOpen: boolean
8
+ proceed: () => void
9
+ cancel: () => void
10
+ }
11
+ setConfirm: any
12
+ }
13
+
14
+ export const ConfirmContext = createContext<ConfirmContextProps>({
15
+ confirm: {
16
+ cancel: () => {},
17
+ proceed: () => {},
18
+ prompt: 'Are you sure?',
19
+ isOpen: false,
20
+ },
21
+ setConfirm: () => {},
22
+ })
23
+
24
+ const ConfirmContextProvider = ({children}) => {
25
+ const [confirm, setConfirm] = useState({
26
+ prompt: '',
27
+ isOpen: false,
28
+ proceed: null,
29
+ cancel: null,
30
+ })
31
+
32
+ return (
33
+ <ConfirmContext.Provider value={{confirm, setConfirm}}>
34
+ {children}
35
+ <PopupConfirm />
36
+ </ConfirmContext.Provider>
37
+ )
38
+ }
39
+
40
+ export default ConfirmContextProvider
@@ -1,34 +1,34 @@
1
- import {
2
- Button,
3
- Dialog,
4
- DialogActions,
5
- DialogContent,
6
- DialogTitle,
7
- } from '@mui/material'
8
- import useConfirm from './useConfirm'
9
-
10
- const PopupConfirm = () => {
11
- const {prompt = '', isOpen = false, proceed, cancel} = useConfirm()
12
- return (
13
- <Dialog
14
- sx={{zIndex: 1600}}
15
- keepMounted
16
- maxWidth='sm'
17
- fullWidth
18
- open={isOpen}
19
- transitionDuration={150}
20
- >
21
- <DialogTitle>Confirm</DialogTitle>
22
- <DialogContent sx={{minHeight: '40px'}}>{prompt}</DialogContent>
23
- <DialogActions>
24
- <Button variant='contained' color='primary' onClick={proceed}>
25
- Ok
26
- </Button>
27
- <Button color='secondary' variant='outlined' onClick={cancel}>
28
- Cancel
29
- </Button>
30
- </DialogActions>
31
- </Dialog>
32
- )
33
- }
34
- export default PopupConfirm
1
+ import {
2
+ Button,
3
+ Dialog,
4
+ DialogActions,
5
+ DialogContent,
6
+ DialogTitle,
7
+ } from '@mui/material'
8
+ import useConfirm from './useConfirm'
9
+
10
+ const PopupConfirm = () => {
11
+ const {prompt = '', isOpen = false, proceed, cancel} = useConfirm()
12
+ return (
13
+ <Dialog
14
+ sx={{zIndex: 1600}}
15
+ keepMounted
16
+ maxWidth='sm'
17
+ fullWidth
18
+ open={isOpen}
19
+ transitionDuration={150}
20
+ >
21
+ <DialogTitle>Confirm</DialogTitle>
22
+ <DialogContent sx={{minHeight: '40px'}}>{prompt}</DialogContent>
23
+ <DialogActions>
24
+ <Button variant='contained' color='primary' onClick={proceed}>
25
+ Ok
26
+ </Button>
27
+ <Button color='secondary' variant='outlined' onClick={cancel}>
28
+ Cancel
29
+ </Button>
30
+ </DialogActions>
31
+ </Dialog>
32
+ )
33
+ }
34
+ export default PopupConfirm
@@ -1 +1 @@
1
- export { default } from './PopupConfirm'
1
+ export { default } from './PopupConfirm'
@@ -1,47 +1,47 @@
1
- import {ReactNode, useContext, useEffect, useState} from 'react'
2
- import {ConfirmContext} from './ConfirmContextProvider'
3
-
4
- export default function useConfirm(): {
5
- isConfirmed: (prompt?: string) => Promise<boolean>
6
- prompt?: ReactNode
7
- isOpen?: boolean
8
- proceed?: () => void
9
- cancel?: () => void
10
- } {
11
- const {confirm, setConfirm} = useContext(ConfirmContext)
12
- const [needsCleanup, setNeedsCleanup] = useState(false)
13
-
14
- const isConfirmed = (prompt) => {
15
- setNeedsCleanup(true)
16
- const promise = new Promise((resolve, reject) => {
17
- setConfirm({
18
- prompt,
19
- isOpen: true,
20
- proceed: resolve,
21
- cancel: reject,
22
- })
23
- })
24
- return promise.then(
25
- () => {
26
- setConfirm({...confirm, isOpen: false})
27
- return true
28
- },
29
- () => {
30
- setConfirm({...confirm, isOpen: false})
31
- return false
32
- }
33
- )
34
- }
35
-
36
- useEffect(() => {
37
- return () => {
38
- if (confirm.cancel && needsCleanup) {
39
- confirm.cancel()
40
- }
41
- }
42
- }, [confirm, needsCleanup])
43
- return {
44
- ...confirm,
45
- isConfirmed,
46
- }
47
- }
1
+ import {ReactNode, useContext, useEffect, useState} from 'react'
2
+ import {ConfirmContext} from './ConfirmContextProvider'
3
+
4
+ export default function useConfirm(): {
5
+ isConfirmed: (prompt?: string) => Promise<boolean>
6
+ prompt?: ReactNode
7
+ isOpen?: boolean
8
+ proceed?: () => void
9
+ cancel?: () => void
10
+ } {
11
+ const {confirm, setConfirm} = useContext(ConfirmContext)
12
+ const [needsCleanup, setNeedsCleanup] = useState(false)
13
+
14
+ const isConfirmed = (prompt) => {
15
+ setNeedsCleanup(true)
16
+ const promise = new Promise((resolve, reject) => {
17
+ setConfirm({
18
+ prompt,
19
+ isOpen: true,
20
+ proceed: resolve,
21
+ cancel: reject,
22
+ })
23
+ })
24
+ return promise.then(
25
+ () => {
26
+ setConfirm({...confirm, isOpen: false})
27
+ return true
28
+ },
29
+ () => {
30
+ setConfirm({...confirm, isOpen: false})
31
+ return false
32
+ }
33
+ )
34
+ }
35
+
36
+ useEffect(() => {
37
+ return () => {
38
+ if (confirm.cancel && needsCleanup) {
39
+ confirm.cancel()
40
+ }
41
+ }
42
+ }, [confirm, needsCleanup])
43
+ return {
44
+ ...confirm,
45
+ isConfirmed,
46
+ }
47
+ }
@@ -1,24 +1,24 @@
1
- import { Box, SxProps } from '@mui/material'
2
- import { ReactNode } from 'react'
3
-
4
- export default function Row({
5
- gap,
6
- children,
7
- sx,
8
- }: {
9
- gap: number
10
- children: ReactNode
11
- sx?: SxProps
12
- }) {
13
- return (
14
- <Box
15
- sx={{
16
- display: 'flex',
17
- gap: `${gap}px`,
18
- ...sx,
19
- }}
20
- >
21
- {children}
22
- </Box>
23
- )
24
- }
1
+ import { Box, SxProps } from '@mui/material'
2
+ import { ReactNode } from 'react'
3
+
4
+ export default function Row({
5
+ gap,
6
+ children,
7
+ sx,
8
+ }: {
9
+ gap: number
10
+ children: ReactNode
11
+ sx?: SxProps
12
+ }) {
13
+ return (
14
+ <Box
15
+ sx={{
16
+ display: 'flex',
17
+ gap: `${gap}px`,
18
+ ...sx,
19
+ }}
20
+ >
21
+ {children}
22
+ </Box>
23
+ )
24
+ }
@@ -1 +1 @@
1
- export { default } from './Row'
1
+ export { default } from './Row'
@@ -1,53 +1,53 @@
1
- import { Search, Tune } from '@mui/icons-material'
2
- import { Box, InputAdornment, styled, TextField } from '@mui/material'
3
- import { useState } from 'react'
4
-
5
- interface SearchBarProps {
6
- onSearch: (v: string) => void
7
- filters?: {
8
- onClick: () => void
9
- }
10
- }
11
-
12
- export default function SearchBar({ onSearch, filters }: SearchBarProps) {
13
- const [search, setSearch] = useState('')
14
- return (
15
- <Box sx={{ display: 'flex', gap: '20px' }}>
16
- <TextField
17
- sx={{ maxWidth: '600px' }}
18
- label="Search"
19
- value={search}
20
- onChange={(e) => {
21
- setSearch(e.target.value)
22
- onSearch(e.target.value)
23
- }}
24
- InputProps={{
25
- endAdornment: (
26
- <InputAdornment position="end">
27
- <Search />
28
- </InputAdornment>
29
- ),
30
- }}
31
- />
32
- {filters && (
33
- <StyledButtonWrapper onClick={filters?.onClick}>
34
- <Tune />
35
- </StyledButtonWrapper>
36
- )}
37
- </Box>
38
- )
39
- }
40
-
41
- const StyledButtonWrapper = styled(Box)(({ theme }) => ({
42
- width: '52px',
43
- border: theme.borders.grayLight,
44
- display: 'flex',
45
- alignItems: 'center',
46
- justifyContent: 'center',
47
- borderRadius: '10px',
48
- cursor: 'pointer',
49
- '&:active': {
50
- border: `1px solid ${theme.palette.primary.main}`,
51
- },
52
- transition: 'border 0.1s ease-in-out',
53
- }))
1
+ import { Search, Tune } from '@mui/icons-material'
2
+ import { Box, InputAdornment, styled, TextField } from '@mui/material'
3
+ import { useState } from 'react'
4
+
5
+ interface SearchBarProps {
6
+ onSearch: (v: string) => void
7
+ filters?: {
8
+ onClick: () => void
9
+ }
10
+ }
11
+
12
+ export default function SearchBar({ onSearch, filters }: SearchBarProps) {
13
+ const [search, setSearch] = useState('')
14
+ return (
15
+ <Box sx={{ display: 'flex', gap: '20px' }}>
16
+ <TextField
17
+ sx={{ maxWidth: '600px' }}
18
+ label="Search"
19
+ value={search}
20
+ onChange={(e) => {
21
+ setSearch(e.target.value)
22
+ onSearch(e.target.value)
23
+ }}
24
+ InputProps={{
25
+ endAdornment: (
26
+ <InputAdornment position="end">
27
+ <Search />
28
+ </InputAdornment>
29
+ ),
30
+ }}
31
+ />
32
+ {filters && (
33
+ <StyledButtonWrapper onClick={filters?.onClick}>
34
+ <Tune />
35
+ </StyledButtonWrapper>
36
+ )}
37
+ </Box>
38
+ )
39
+ }
40
+
41
+ const StyledButtonWrapper = styled(Box)(({ theme }) => ({
42
+ width: '52px',
43
+ border: theme.borders.grayLight,
44
+ display: 'flex',
45
+ alignItems: 'center',
46
+ justifyContent: 'center',
47
+ borderRadius: '10px',
48
+ cursor: 'pointer',
49
+ '&:active': {
50
+ border: `1px solid ${theme.palette.primary.main}`,
51
+ },
52
+ transition: 'border 0.1s ease-in-out',
53
+ }))
@@ -1 +1 @@
1
- export { default as SearchBar } from './SearchBar'
1
+ export { default as SearchBar } from './SearchBar'
@@ -1,18 +1,18 @@
1
- import {CircularProgress} from '@mui/material'
2
-
3
- function Spinner({height = '200px'}: {height?: string | number}) {
4
- return (
5
- <div
6
- style={{
7
- justifyContent: 'center',
8
- alignItems: 'center',
9
- height,
10
- display: 'flex',
11
- }}
12
- >
13
- <CircularProgress />
14
- </div>
15
- )
16
- }
17
-
18
- export default Spinner
1
+ import {CircularProgress} from '@mui/material'
2
+
3
+ function Spinner({height = '200px'}: {height?: string | number}) {
4
+ return (
5
+ <div
6
+ style={{
7
+ justifyContent: 'center',
8
+ alignItems: 'center',
9
+ height,
10
+ display: 'flex',
11
+ }}
12
+ >
13
+ <CircularProgress />
14
+ </div>
15
+ )
16
+ }
17
+
18
+ export default Spinner