@campxdev/shared 1.4.19 → 1.4.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 (216) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +18 -18
  3. package/package.json +84 -84
  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 +20 -20
  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 +123 -123
  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/AnchorElement.tsx +44 -0
  24. package/src/components/DropDownButton/DropDownButton.tsx +175 -177
  25. package/src/components/DropDownButton/DropdownMenuItem.tsx +100 -0
  26. package/src/components/DropDownButton/index.tsx +1 -1
  27. package/src/components/DropDownButton/styles.tsx +59 -56
  28. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  29. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  30. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  31. package/src/components/ErrorBoundary/index.tsx +1 -1
  32. package/src/components/ErrorBox.tsx +42 -42
  33. package/src/components/FilterComponents/FilterButton.tsx +40 -40
  34. package/src/components/FilterComponents/SearchBar.tsx +40 -40
  35. package/src/components/FloatingContainer.tsx +33 -33
  36. package/src/components/Form/Form.tsx +156 -156
  37. package/src/components/Form/RenderForm.tsx +188 -188
  38. package/src/components/FullCalendar/Actions.tsx +162 -162
  39. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  40. package/src/components/FullScreenLoader.tsx +19 -19
  41. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  42. package/src/components/HookForm/DatePicker.tsx +40 -40
  43. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  44. package/src/components/HookForm/FormLabel.tsx +14 -14
  45. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  46. package/src/components/HookForm/MultiSelect.tsx +53 -53
  47. package/src/components/HookForm/RadioGroup.tsx +45 -45
  48. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  49. package/src/components/HookForm/SingleSelect.tsx +46 -46
  50. package/src/components/HookForm/TextField.tsx +40 -40
  51. package/src/components/HookForm/TimePicker.tsx +40 -40
  52. package/src/components/HookForm/index.ts +23 -23
  53. package/src/components/IconButtons/IconButtons.tsx +137 -137
  54. package/src/components/IconButtons/Icons.tsx +268 -268
  55. package/src/components/IconButtons/assets/edit.svg +4 -4
  56. package/src/components/IconButtons/assets/eye.svg +6 -6
  57. package/src/components/IconButtons/assets/trash.svg +7 -7
  58. package/src/components/IconButtons/index.tsx +8 -8
  59. package/src/components/IconLabel.tsx +37 -37
  60. package/src/components/Image/Image.tsx +45 -45
  61. package/src/components/Image/index.tsx +1 -1
  62. package/src/components/ImageUpload.tsx +98 -98
  63. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  64. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  65. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  66. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  67. package/src/components/Input/DatePicker.tsx +69 -69
  68. package/src/components/Input/DateRangePicker.tsx +105 -105
  69. package/src/components/Input/DateTimePicker.tsx +77 -77
  70. package/src/components/Input/FormLabel.tsx +21 -21
  71. package/src/components/Input/MultiCheckbox.tsx +64 -64
  72. package/src/components/Input/MultiSelect.tsx +150 -150
  73. package/src/components/Input/RadioGroup.tsx +104 -104
  74. package/src/components/Input/SingleCheckbox.tsx +78 -78
  75. package/src/components/Input/SingleSelect.tsx +104 -104
  76. package/src/components/Input/TextField.tsx +46 -46
  77. package/src/components/Input/TimePicker.tsx +70 -70
  78. package/src/components/Input/index.ts +26 -26
  79. package/src/components/Input/types.ts +3 -3
  80. package/src/components/JsonPreview.tsx +7 -7
  81. package/src/components/LabelValue.tsx +21 -21
  82. package/src/components/Layout/ChangePassword.tsx +49 -49
  83. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  84. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  85. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  86. package/src/components/Layout/Header/Notification.tsx +13 -13
  87. package/src/components/Layout/Header/UserBox.tsx +81 -81
  88. package/src/components/Layout/Header/applications.ts +91 -91
  89. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  90. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  91. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  92. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  93. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  94. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  95. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  96. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  97. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  98. package/src/components/Layout/Header/assets/index.ts +33 -33
  99. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  100. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  101. package/src/components/Layout/Header/assets/payx.svg +19 -19
  102. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  103. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  104. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  105. package/src/components/Layout/Header/icons.tsx +57 -57
  106. package/src/components/Layout/Header/index.tsx +1 -1
  107. package/src/components/Layout/Header/styles.tsx +124 -124
  108. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  109. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  110. package/src/components/Layout/SideNav.tsx +168 -168
  111. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  112. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  113. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  114. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  115. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  116. package/src/components/Layout/Tickets/index.tsx +1 -1
  117. package/src/components/Layout/Tickets/services.ts +11 -11
  118. package/src/components/Layout/Tickets/styles.tsx +136 -136
  119. package/src/components/LinearProgress.tsx +19 -19
  120. package/src/components/ListItemButton.tsx +95 -95
  121. package/src/components/LoginForm.tsx +80 -80
  122. package/src/components/MediaRow/MediaRow.tsx +69 -69
  123. package/src/components/MediaRow/index.tsx +1 -1
  124. package/src/components/ModalButtons/DialogButton.tsx +121 -93
  125. package/src/components/ModalButtons/DrawerButton.tsx +113 -84
  126. package/src/components/ModalButtons/index.tsx +4 -4
  127. package/src/components/NoDataIllustration.tsx +32 -32
  128. package/src/components/PageContent.tsx +12 -12
  129. package/src/components/PageHeader.tsx +55 -55
  130. package/src/components/PageNotFound.tsx +26 -26
  131. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  132. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  133. package/src/components/PopupConfirm/index.tsx +1 -1
  134. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  135. package/src/components/Row.tsx +24 -24
  136. package/src/components/Spinner.tsx +18 -18
  137. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  138. package/src/components/StepsHeader/index.tsx +1 -1
  139. package/src/components/StyledTableContainer.tsx +33 -33
  140. package/src/components/SwitchButton.tsx +41 -41
  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 +295 -295
  145. package/src/components/TableComponent/RenderTableBody.tsx +68 -68
  146. package/src/components/TableComponent/Table.tsx +197 -197
  147. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  148. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  149. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  150. package/src/components/TableComponent/index.tsx +1 -1
  151. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  152. package/src/components/TableComponent/styles.tsx +170 -170
  153. package/src/components/TableComponent/types.ts +57 -57
  154. package/src/components/Tabs/Tabs.tsx +52 -52
  155. package/src/components/Tabs/TabsContainer.tsx +50 -50
  156. package/src/components/Tabs/index.tsx +1 -1
  157. package/src/components/Tabs/styles.tsx +55 -55
  158. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  159. package/src/components/ToastContainer/index.tsx +1 -1
  160. package/src/components/UploadButton/UploadButton.tsx +126 -126
  161. package/src/components/UploadButton/index.tsx +1 -1
  162. package/src/components/UploadButton/types.ts +19 -19
  163. package/src/components/UploadDocument.tsx +108 -108
  164. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  165. package/src/components/UploadFileDialog/index.tsx +1 -1
  166. package/src/components/index.ts +89 -89
  167. package/src/config/axios.ts +73 -73
  168. package/src/config/axiosEvaluator.ts +53 -53
  169. package/src/config/axiosXTenant.ts +57 -57
  170. package/src/constants/UIConstants.ts +97 -97
  171. package/src/constants/formValidations.ts +6 -6
  172. package/src/constants/index.ts +5 -5
  173. package/src/constants/isDevelopment.ts +3 -3
  174. package/src/constants/permissions.ts +67 -67
  175. package/src/constants/validateMessages.ts +12 -12
  176. package/src/contexts/LoginFormProvider.tsx +39 -39
  177. package/src/contexts/Providers.tsx +73 -73
  178. package/src/contexts/PublicProviders.tsx +30 -30
  179. package/src/contexts/QueryClientProvider.tsx +22 -22
  180. package/src/hooks/index.ts +3 -3
  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 +74 -74
  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 +592 -560
  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 +7 -7
  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/withRouteWrapper.tsx +25 -25
  212. package/src/utils/withSuspense.tsx +6 -6
  213. package/styled-components.tsx +60 -60
  214. package/tsconfig.json +21 -21
  215. package/yarn-error.log +109 -0
  216. package/src/components/Layout/Header/assets/commuteX.png +0 -0
@@ -1,69 +1,69 @@
1
- import { Delete } from '@mui/icons-material'
2
- import { Box, IconButton, styled, Typography, Stack } from '@mui/material'
3
- import Image from '../Image'
4
- // import { Media } from 'components/UploadButton/UploadButton'
5
-
6
- interface MediaRowProps {
7
- list: any[]
8
- onDelete?: (mediaKey: string) => void
9
- }
10
-
11
- export default function MediaRow({ list, onDelete }: MediaRowProps) {
12
- console.log(list, 'list')
13
- return (
14
- <Box sx={{ display: 'flex', gap: '1rem', width: '100%', flexWrap: 'wrap' }}>
15
- {list.map((item, index) => (
16
- <>{rednerMediaCard(item, onDelete)}</>
17
- ))}
18
- </Box>
19
- )
20
- }
21
-
22
- const rednerMediaCard = (item: any, onDelete?: (mediaKey: string) => void) => {
23
- switch (item?.type) {
24
- case 'image':
25
- return (
26
- <StyledImageContainer>
27
- <IconButton
28
- size="small"
29
- color="error"
30
- onClick={() => {
31
- onDelete(item?.key)
32
- }}
33
- >
34
- <Delete fontSize="small" />
35
- </IconButton>
36
- <Image src={item?.url} height={120} width={150} alt={''} />
37
- </StyledImageContainer>
38
- )
39
- case 'file':
40
- return (
41
- <Stack
42
- direction={'row'}
43
- alignItems="center"
44
- justifyContent={'space-between'}
45
- gap={'10px'}
46
- >
47
- <Typography>{item?.fileName}</Typography>
48
- <IconButton color="error">
49
- <Delete fontSize="small" />
50
- </IconButton>
51
- </Stack>
52
- )
53
-
54
- default:
55
- break
56
- }
57
- }
58
-
59
- const StyledImageContainer = styled(Box)(({ theme }) => ({
60
- border: theme.borders.grayLight,
61
- borderRadius: '10px',
62
- padding: '0.7rem',
63
- position: 'relative',
64
- '& > button': {
65
- position: 'absolute',
66
- right: 0,
67
- top: 0,
68
- },
69
- }))
1
+ import { Delete } from '@mui/icons-material'
2
+ import { Box, IconButton, styled, Typography, Stack } from '@mui/material'
3
+ import Image from '../Image'
4
+ // import { Media } from 'components/UploadButton/UploadButton'
5
+
6
+ interface MediaRowProps {
7
+ list: any[]
8
+ onDelete?: (mediaKey: string) => void
9
+ }
10
+
11
+ export default function MediaRow({ list, onDelete }: MediaRowProps) {
12
+ console.log(list, 'list')
13
+ return (
14
+ <Box sx={{ display: 'flex', gap: '1rem', width: '100%', flexWrap: 'wrap' }}>
15
+ {list.map((item, index) => (
16
+ <>{rednerMediaCard(item, onDelete)}</>
17
+ ))}
18
+ </Box>
19
+ )
20
+ }
21
+
22
+ const rednerMediaCard = (item: any, onDelete?: (mediaKey: string) => void) => {
23
+ switch (item?.type) {
24
+ case 'image':
25
+ return (
26
+ <StyledImageContainer>
27
+ <IconButton
28
+ size="small"
29
+ color="error"
30
+ onClick={() => {
31
+ onDelete(item?.key)
32
+ }}
33
+ >
34
+ <Delete fontSize="small" />
35
+ </IconButton>
36
+ <Image src={item?.url} height={120} width={150} alt={''} />
37
+ </StyledImageContainer>
38
+ )
39
+ case 'file':
40
+ return (
41
+ <Stack
42
+ direction={'row'}
43
+ alignItems="center"
44
+ justifyContent={'space-between'}
45
+ gap={'10px'}
46
+ >
47
+ <Typography>{item?.fileName}</Typography>
48
+ <IconButton color="error">
49
+ <Delete fontSize="small" />
50
+ </IconButton>
51
+ </Stack>
52
+ )
53
+
54
+ default:
55
+ break
56
+ }
57
+ }
58
+
59
+ const StyledImageContainer = styled(Box)(({ theme }) => ({
60
+ border: theme.borders.grayLight,
61
+ borderRadius: '10px',
62
+ padding: '0.7rem',
63
+ position: 'relative',
64
+ '& > button': {
65
+ position: 'absolute',
66
+ right: 0,
67
+ top: 0,
68
+ },
69
+ }))
@@ -1 +1 @@
1
- export { default } from './MediaRow'
1
+ export { default } from './MediaRow'
@@ -1,93 +1,121 @@
1
- import { Close } from '@mui/icons-material'
2
- import {
3
- Box,
4
- Dialog,
5
- DialogProps,
6
- DialogTitle,
7
- Grow,
8
- IconButton,
9
- styled,
10
- } from '@mui/material'
11
- import { TransitionProps } from '@mui/material/transitions'
12
- import { forwardRef, ReactNode, useState } from 'react'
13
-
14
- const StyledDialogHeader = styled(Box)(() => ({
15
- height: '64px',
16
- backgroundColor: '#f7f7f7',
17
- display: 'flex',
18
- justifyContent: 'space-between',
19
- alignItems: 'end',
20
- padding: '0.6rem 1rem',
21
- paddingBottom: '10px',
22
- }))
23
-
24
- const StyledDialogContent = styled(Box)(() => ({
25
- width: '100%',
26
- padding: '1rem',
27
- }))
28
-
29
- export const Transition = forwardRef(function Transition(
30
- props: TransitionProps & {
31
- children: React.ReactElement
32
- },
33
- ref: React.Ref<unknown>,
34
- ) {
35
- return <Grow timeout={1000} ref={ref} {...props} />
36
- })
37
-
38
- interface DrawerButtonProps {
39
- anchor: (props: { open: () => void }) => ReactNode
40
- content: (props: { close: () => void }) => ReactNode
41
- title: string | ReactNode
42
- dialogProps?: Omit<DialogProps, 'open'>
43
- onDialogClose?: () => void
44
- }
45
-
46
- export default function DialogButton({
47
- content,
48
- title,
49
- dialogProps,
50
- onDialogClose,
51
- anchor,
52
- }: DrawerButtonProps) {
53
- const [open, setOpen] = useState(false)
54
-
55
- const onClose = () => {
56
- onDialogClose && onDialogClose()
57
- setOpen(false)
58
- }
59
-
60
- const onOpen = () => {
61
- setOpen(true)
62
- }
63
-
64
- return (
65
- <>
66
- {anchor({
67
- open: onOpen,
68
- })}
69
- <Dialog
70
- PaperProps={{ elevation: 2, sx: { borderRadius: '10px' } }}
71
- fullWidth
72
- onClose={onClose}
73
- open={open}
74
- transitionDuration={140}
75
- TransitionComponent={Transition}
76
- sx={{
77
- '& .MuiBackdrop-root': {
78
- backgroundColor: 'rgba(0, 0, 0, 0.4)',
79
- },
80
- }}
81
- {...dialogProps}
82
- >
83
- <StyledDialogHeader>
84
- <DialogTitle>{title}</DialogTitle>
85
- <IconButton onClick={onClose} sx={{ color: 'black' }}>
86
- <Close />
87
- </IconButton>
88
- </StyledDialogHeader>
89
- <StyledDialogContent>{content({ close: onClose })}</StyledDialogContent>
90
- </Dialog>
91
- </>
92
- )
93
- }
1
+ import { Close } from '@mui/icons-material'
2
+ import {
3
+ Box,
4
+ Dialog,
5
+ DialogProps,
6
+ DialogTitle,
7
+ Grow,
8
+ IconButton,
9
+ styled,
10
+ } from '@mui/material'
11
+ import { TransitionProps } from '@mui/material/transitions'
12
+ import { forwardRef, ReactNode, useState } from 'react'
13
+ import { SCROLLBAR_DARK } from '../../theme/muiTheme'
14
+
15
+ const StyledDialogHeader = styled(Box)(() => ({
16
+ height: '64px',
17
+ backgroundColor: '#f7f7f7',
18
+ display: 'flex',
19
+ justifyContent: 'space-between',
20
+ alignItems: 'end',
21
+ padding: '0.6rem 1rem',
22
+ paddingBottom: '10px',
23
+ }))
24
+
25
+ const StyledDialogContent = styled(Box)(() => ({
26
+ width: '100%',
27
+ padding: '1rem',
28
+ maxHeight: 'calc(100vh - 64px)',
29
+ overflow: 'auto',
30
+ ...SCROLLBAR_DARK,
31
+ }))
32
+
33
+ export const Transition = forwardRef(function Transition(
34
+ props: TransitionProps & {
35
+ children: React.ReactElement
36
+ },
37
+ ref: React.Ref<unknown>,
38
+ ) {
39
+ return <Grow timeout={1000} ref={ref} {...props} />
40
+ })
41
+
42
+ interface DrawerButtonProps {
43
+ anchor: (props: { open: () => void }) => ReactNode
44
+ content: (props: { close: () => void }) => ReactNode
45
+ title: string | ReactNode
46
+ dialogProps?: Omit<DialogProps, 'open'>
47
+ onDialogClose?: () => void
48
+ }
49
+
50
+ export default function DialogButton({
51
+ content,
52
+ title,
53
+ dialogProps,
54
+ onDialogClose,
55
+ anchor,
56
+ }: DrawerButtonProps) {
57
+ const [open, setOpen] = useState(false)
58
+
59
+ const onClose = () => {
60
+ onDialogClose && onDialogClose()
61
+ setOpen(false)
62
+ }
63
+
64
+ const onOpen = () => {
65
+ setOpen(true)
66
+ }
67
+
68
+ return (
69
+ <>
70
+ {anchor({
71
+ open: onOpen,
72
+ })}
73
+ <CustomDialog
74
+ open={open}
75
+ content={content}
76
+ dialogProps={dialogProps}
77
+ onClose={onClose}
78
+ title={title}
79
+ />
80
+ </>
81
+ )
82
+ }
83
+
84
+ interface CustomDialogProps {
85
+ content: (props: { close: () => void }) => ReactNode
86
+ title: string | ReactNode
87
+ dialogProps?: Omit<DialogProps, 'open'>
88
+ onClose: () => void
89
+ open: boolean
90
+ }
91
+
92
+ export const CustomDialog = ({
93
+ onClose,
94
+ dialogProps,
95
+ title,
96
+ content,
97
+ open,
98
+ }: CustomDialogProps) => {
99
+ return (
100
+ <Dialog
101
+ PaperProps={{ elevation: 2, sx: { borderRadius: '10px' } }}
102
+ fullWidth
103
+ onClose={onClose}
104
+ open={open}
105
+ transitionDuration={140}
106
+ TransitionComponent={Transition}
107
+ sx={{
108
+ '& .MuiBackdrop-root': { backgroundColor: 'rgba(0, 0, 0, 0.4)' },
109
+ }}
110
+ {...dialogProps}
111
+ >
112
+ <StyledDialogHeader>
113
+ <DialogTitle>{title}</DialogTitle>
114
+ <IconButton onClick={onClose} sx={{ color: 'black' }}>
115
+ <Close />
116
+ </IconButton>
117
+ </StyledDialogHeader>
118
+ <StyledDialogContent>{content({ close: onClose })}</StyledDialogContent>
119
+ </Dialog>
120
+ )
121
+ }
@@ -1,84 +1,113 @@
1
- import { Close } from '@mui/icons-material'
2
- import {
3
- Box,
4
- ButtonProps,
5
- DialogTitle,
6
- Drawer,
7
- IconButton,
8
- styled,
9
- } from '@mui/material'
10
- import { ReactNode, useState } from 'react'
11
-
12
- const StyledDrawerHeader = styled(Box)(({ theme }) => ({
13
- height: '64px',
14
- backgroundColor: '#f7f7f7',
15
- display: 'flex',
16
- justifyContent: 'space-between',
17
- alignItems: 'end',
18
- padding: '0.6rem 1rem',
19
- paddingBottom: '10px',
20
- }))
21
-
22
- const StyledDrawerContent = styled(Box)(({ theme }) => ({
23
- padding: '1rem',
24
- height: 'calc(100vh - 64px)',
25
- overflowY: 'auto',
26
- paddingBottom: '4rem',
27
- }))
28
-
29
- interface DrawerButtonProps {
30
- anchor: (props: { open: () => void }) => ReactNode
31
- content: (props: { close: () => void }) => ReactNode
32
- title: string | ReactNode
33
- btnTxt?: string | ReactNode
34
- btnProps?: ButtonProps
35
- }
36
-
37
- export default function DrawerButton({
38
- content,
39
- title,
40
- anchor,
41
- }: DrawerButtonProps) {
42
- const [open, setOpen] = useState(false)
43
-
44
- const onOpen = () => {
45
- setOpen(true)
46
- }
47
-
48
- const onClose = () => {
49
- setOpen(false)
50
- }
51
- return (
52
- <>
53
- {anchor({ open: onOpen })}
54
- <Drawer
55
- anchor="right"
56
- elevation={2}
57
- onClose={onClose}
58
- open={open}
59
- PaperProps={{
60
- elevation: 2,
61
- }}
62
- sx={{
63
- zIndex: 500,
64
- '& .MuiDrawer-paper': {
65
- boxSizing: 'border-box',
66
- width: 600,
67
- },
68
- '& .MuiBackdrop-root': {
69
- backgroundColor: 'rgba(0, 0, 0, 0.4)',
70
- },
71
- }}
72
- transitionDuration={140}
73
- >
74
- <StyledDrawerHeader>
75
- <DialogTitle>{title}</DialogTitle>
76
- <IconButton onClick={onClose} sx={{ color: 'black' }}>
77
- <Close />
78
- </IconButton>
79
- </StyledDrawerHeader>
80
- <StyledDrawerContent>{content({ close: onClose })}</StyledDrawerContent>
81
- </Drawer>
82
- </>
83
- )
84
- }
1
+ import { Close } from '@mui/icons-material'
2
+ import {
3
+ Box,
4
+ ButtonProps,
5
+ DialogTitle,
6
+ Drawer,
7
+ DrawerProps,
8
+ IconButton,
9
+ styled,
10
+ } from '@mui/material'
11
+ import { ReactNode, useState } from 'react'
12
+ import { SCROLLBAR_DARK } from '../../theme/muiTheme'
13
+
14
+ const StyledDrawerHeader = styled(Box)(({ theme }) => ({
15
+ height: '64px',
16
+ backgroundColor: '#f7f7f7',
17
+ display: 'flex',
18
+ justifyContent: 'space-between',
19
+ alignItems: 'end',
20
+ padding: '0.6rem 1rem',
21
+ paddingBottom: '10px',
22
+ }))
23
+
24
+ const StyledDrawerContent = styled(Box)(({ theme }) => ({
25
+ padding: '1rem',
26
+ height: 'calc(100vh - 64px)',
27
+ overflowY: 'auto',
28
+ paddingBottom: '4rem',
29
+ ...SCROLLBAR_DARK,
30
+ }))
31
+
32
+ export interface DrawerButtonProps {
33
+ anchor: (props: { open: () => void }) => ReactNode
34
+ content: (props: { close: () => void }) => ReactNode
35
+ title: string | ReactNode
36
+ btnTxt?: string | ReactNode
37
+ btnProps?: ButtonProps
38
+ }
39
+
40
+ export default function DrawerButton({
41
+ content,
42
+ title,
43
+ anchor,
44
+ }: DrawerButtonProps) {
45
+ const [open, setOpen] = useState(false)
46
+
47
+ const onOpen = () => {
48
+ setOpen(true)
49
+ }
50
+
51
+ const onClose = () => {
52
+ setOpen(false)
53
+ }
54
+ return (
55
+ <>
56
+ {anchor({ open: onOpen })}
57
+ <CustomDrawer
58
+ content={content}
59
+ onClose={onClose}
60
+ open={open}
61
+ title={title}
62
+ />
63
+ </>
64
+ )
65
+ }
66
+
67
+ interface CustomDrawerProps {
68
+ content: (props: { close: () => void }) => ReactNode
69
+ title: string | ReactNode
70
+ drawerProps?: Omit<DrawerProps, 'open'>
71
+ onClose: () => void
72
+ open: boolean
73
+ }
74
+
75
+ export const CustomDrawer = ({
76
+ onClose,
77
+ drawerProps,
78
+ title,
79
+ content,
80
+ open,
81
+ }: CustomDrawerProps) => {
82
+ return (
83
+ <Drawer
84
+ anchor="right"
85
+ elevation={2}
86
+ onClose={onClose}
87
+ open={open}
88
+ PaperProps={{
89
+ elevation: 2,
90
+ }}
91
+ sx={{
92
+ zIndex: 500,
93
+ '& .MuiDrawer-paper': {
94
+ boxSizing: 'border-box',
95
+ width: 600,
96
+ },
97
+ '& .MuiBackdrop-root': {
98
+ backgroundColor: 'rgba(0, 0, 0, 0.4)',
99
+ },
100
+ }}
101
+ transitionDuration={140}
102
+ {...drawerProps}
103
+ >
104
+ <StyledDrawerHeader>
105
+ <DialogTitle>{title}</DialogTitle>
106
+ <IconButton onClick={onClose} sx={{ color: 'black' }}>
107
+ <Close />
108
+ </IconButton>
109
+ </StyledDrawerHeader>
110
+ <StyledDrawerContent>{content({ close: onClose })}</StyledDrawerContent>
111
+ </Drawer>
112
+ )
113
+ }
@@ -1,4 +1,4 @@
1
- import DialogButton from './DialogButton'
2
- import DrawerButton from './DrawerButton'
3
-
4
- export { DialogButton, DrawerButton }
1
+ import DialogButton from './DialogButton'
2
+ import DrawerButton from './DrawerButton'
3
+
4
+ export { DialogButton, DrawerButton }
@@ -1,32 +1,32 @@
1
- import { Box, Typography } from '@mui/material'
2
- import Image from './Image'
3
- import { ReactNode } from 'react'
4
-
5
- interface Props {
6
- imageSrc: string
7
- height?: string
8
- message?: string | ReactNode
9
- }
10
-
11
- export default function NoData({
12
- imageSrc,
13
- height = '300px',
14
- message = 'No Data Found',
15
- }: Props) {
16
- return (
17
- <Box
18
- sx={{
19
- marginTop: '20px',
20
- }}
21
- >
22
- <Image alt="No Data Found" height={height} width="auto" src={imageSrc} />
23
- {typeof message === 'string' ? (
24
- <Typography marginTop={'20px'} textAlign={'center'}>
25
- {message}
26
- </Typography>
27
- ) : (
28
- <>{message}</>
29
- )}
30
- </Box>
31
- )
32
- }
1
+ import { Box, Typography } from '@mui/material'
2
+ import Image from './Image'
3
+ import { ReactNode } from 'react'
4
+
5
+ interface Props {
6
+ imageSrc: string
7
+ height?: string
8
+ message?: string | ReactNode
9
+ }
10
+
11
+ export default function NoData({
12
+ imageSrc,
13
+ height = '300px',
14
+ message = 'No Data Found',
15
+ }: Props) {
16
+ return (
17
+ <Box
18
+ sx={{
19
+ marginTop: '20px',
20
+ }}
21
+ >
22
+ <Image alt="No Data Found" height={height} width="auto" src={imageSrc} />
23
+ {typeof message === 'string' ? (
24
+ <Typography marginTop={'20px'} textAlign={'center'}>
25
+ {message}
26
+ </Typography>
27
+ ) : (
28
+ <>{message}</>
29
+ )}
30
+ </Box>
31
+ )
32
+ }
@@ -1,12 +1,12 @@
1
- import { Box, BoxProps, styled } from '@mui/material'
2
-
3
- const StyledPageContent = styled(Box)(() => ({
4
- paddingLeft: '25px',
5
- paddingRight: '25px',
6
- marginTop: '16px',
7
- paddingBottom: '3rem',
8
- }))
9
-
10
- export function PageContent(props: BoxProps) {
11
- return <StyledPageContent {...props}>{props.children}</StyledPageContent>
12
- }
1
+ import { Box, BoxProps, styled } from '@mui/material'
2
+
3
+ const StyledPageContent = styled(Box)(() => ({
4
+ paddingLeft: '25px',
5
+ paddingRight: '25px',
6
+ marginTop: '16px',
7
+ paddingBottom: '3rem',
8
+ }))
9
+
10
+ export function PageContent(props: BoxProps) {
11
+ return <StyledPageContent {...props}>{props.children}</StyledPageContent>
12
+ }