@campxdev/shared 1.0.4 → 1.1.0

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 (220) hide show
  1. package/.eslintignore +3 -3
  2. package/.eslintrc.js +33 -33
  3. package/.prettierrc +10 -10
  4. package/antd.customize.less +73 -73
  5. package/exports.ts +17 -17
  6. package/package.json +82 -82
  7. package/publish.sh +1 -1
  8. package/src/assets/fonts/avenir/index.ts +2 -2
  9. package/src/assets/fonts/poppins/index.ts +7 -7
  10. package/src/assets/images/index.ts +17 -17
  11. package/src/assets/images/unauth.svg +92 -92
  12. package/src/components/ActionButton.tsx +28 -28
  13. package/src/components/Attachment.tsx +26 -26
  14. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  15. package/src/components/AutocompleteSearch/index.tsx +1 -1
  16. package/src/components/Breadcrumbs.tsx +72 -72
  17. package/src/components/Card.tsx +98 -98
  18. package/src/components/CardsGrid.tsx +28 -28
  19. package/src/components/ChangePassword.tsx +164 -164
  20. package/src/components/Chips.tsx +81 -81
  21. package/src/components/Detail.tsx +15 -15
  22. package/src/components/DetailsGrid.tsx +52 -52
  23. package/src/components/DividerHeading.tsx +41 -41
  24. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  25. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  26. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  27. package/src/components/DropDownButton.tsx +194 -194
  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/FloatingContainer.tsx +33 -33
  34. package/src/components/Form/Form.tsx +156 -156
  35. package/src/components/Form/RenderForm.tsx +188 -188
  36. package/src/components/FullCalendar/Actions.tsx +162 -162
  37. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  38. package/src/components/FullScreenLoader.tsx +19 -19
  39. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  40. package/src/components/HookForm/DatePicker.tsx +65 -65
  41. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  42. package/src/components/HookForm/FormLabel.tsx +14 -14
  43. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  44. package/src/components/HookForm/MultiSelect.tsx +100 -100
  45. package/src/components/HookForm/RadioGroup.tsx +106 -106
  46. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  47. package/src/components/HookForm/SingleSelect.tsx +94 -94
  48. package/src/components/HookForm/TextField.tsx +74 -74
  49. package/src/components/HookForm/TimePicker.tsx +82 -82
  50. package/src/components/HookForm/index.ts +23 -23
  51. package/src/components/IconButtons/IconButtons.tsx +137 -137
  52. package/src/components/IconButtons/Icons.tsx +268 -268
  53. package/src/components/IconButtons/assets/edit.svg +4 -4
  54. package/src/components/IconButtons/assets/eye.svg +6 -6
  55. package/src/components/IconButtons/assets/trash.svg +7 -7
  56. package/src/components/IconButtons/index.tsx +8 -8
  57. package/src/components/IconLabel.tsx +37 -37
  58. package/src/components/Image/Image.tsx +43 -43
  59. package/src/components/Image/index.tsx +1 -1
  60. package/src/components/ImageUpload.tsx +98 -98
  61. package/src/components/Input/AutoCompleteSearch.tsx +113 -113
  62. package/src/components/Input/DatePicker.tsx +60 -60
  63. package/src/components/Input/DateRangePicker.tsx +131 -131
  64. package/src/components/Input/DateTimePicker.tsx +70 -70
  65. package/src/components/Input/FormLabel.tsx +14 -14
  66. package/src/components/Input/MultiCheckbox.tsx +79 -79
  67. package/src/components/Input/MultiSelect.tsx +52 -52
  68. package/src/components/Input/RadioGroup.tsx +61 -61
  69. package/src/components/Input/SingleCheckbox.tsx +23 -23
  70. package/src/components/Input/SingleSelect.tsx +126 -126
  71. package/src/components/Input/TextField.tsx +50 -50
  72. package/src/components/Input/TimePicker.tsx +82 -82
  73. package/src/components/Input/index.ts +26 -26
  74. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  75. package/src/components/JsonPreview/index.tsx +1 -1
  76. package/src/components/LabelValue/LabelValue.tsx +21 -21
  77. package/src/components/LabelValue/index.tsx +1 -1
  78. package/src/components/Layout/ChangePassword.tsx +49 -49
  79. package/src/components/Layout/Header/AppHeader.tsx +124 -124
  80. package/src/components/Layout/Header/AppsMenu.tsx +92 -92
  81. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  82. package/src/components/Layout/Header/HelpWidget/HelpWidget.tsx +298 -298
  83. package/src/components/Layout/Header/HelpWidget/styles.tsx +94 -92
  84. package/src/components/Layout/Header/Notification.tsx +13 -13
  85. package/src/components/Layout/Header/UserBox.tsx +90 -90
  86. package/src/components/Layout/Header/applications.ts +90 -90
  87. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  88. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  89. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  90. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  91. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  92. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  93. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  94. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  95. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  96. package/src/components/Layout/Header/assets/index.ts +33 -33
  97. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  98. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  99. package/src/components/Layout/Header/assets/payx.svg +19 -19
  100. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  101. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  102. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  103. package/src/components/Layout/Header/icons.tsx +57 -57
  104. package/src/components/Layout/Header/index.tsx +1 -1
  105. package/src/components/Layout/Header/styles.tsx +98 -98
  106. package/src/components/Layout/Tickets/MyTickets.tsx +74 -74
  107. package/src/components/Layout/Tickets/Services.tsx +6 -6
  108. package/src/components/Layout/Tickets/TicketDetails.tsx +66 -66
  109. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  110. package/src/components/Layout/Tickets/index.tsx +1 -1
  111. package/src/components/Layout/Tickets/styles.tsx +136 -136
  112. package/src/components/LayoutWrapper.tsx +25 -25
  113. package/src/components/LinearProgress.tsx +19 -19
  114. package/src/components/ListItemButton.tsx +95 -95
  115. package/src/components/LoginForm.tsx +105 -103
  116. package/src/components/MediaRow/MediaRow.tsx +69 -69
  117. package/src/components/MediaRow/index.tsx +1 -1
  118. package/src/components/MenuButton.tsx +103 -103
  119. package/src/components/ModalButtons/DialogButton.tsx +88 -88
  120. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  121. package/src/components/ModalButtons/index.tsx +4 -4
  122. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  123. package/src/components/NoDataIllustration/index.tsx +1 -1
  124. package/src/components/PageContent.tsx +17 -17
  125. package/src/components/PageHeader.tsx +52 -52
  126. package/src/components/PageNotFound.tsx +26 -26
  127. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  128. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  129. package/src/components/PopupConfirm/index.tsx +1 -1
  130. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  131. package/src/components/Router.tsx +7 -7
  132. package/src/components/Row/Row.tsx +24 -24
  133. package/src/components/Row/index.tsx +1 -1
  134. package/src/components/SearchBar/SearchBar.tsx +53 -53
  135. package/src/components/SearchBar/index.tsx +1 -1
  136. package/src/components/SideMenuHeader.tsx +29 -29
  137. package/src/components/SideNav.tsx +168 -168
  138. package/src/components/Spinner.tsx +18 -18
  139. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  140. package/src/components/StepsHeader/index.tsx +1 -1
  141. package/src/components/StyledTableContainer.tsx +33 -33
  142. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  143. package/src/components/SwitchButton/index.tsx +1 -1
  144. package/src/components/Table.tsx +42 -42
  145. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  146. package/src/components/TableComponent/Icons/index.tsx +50 -50
  147. package/src/components/TableComponent/ReactTable.tsx +293 -293
  148. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  149. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  150. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  151. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  152. package/src/components/TableComponent/index.tsx +226 -226
  153. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  154. package/src/components/TableComponent/styles.tsx +173 -173
  155. package/src/components/TableComponent/types.ts +57 -57
  156. package/src/components/Tabs/Tabs.tsx +52 -52
  157. package/src/components/Tabs/TabsContainer.tsx +50 -50
  158. package/src/components/Tabs/index.tsx +1 -1
  159. package/src/components/Tabs/styles.tsx +55 -55
  160. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  161. package/src/components/ToastContainer/index.tsx +1 -1
  162. package/src/components/UploadButton/UploadButton.tsx +126 -126
  163. package/src/components/UploadButton/index.tsx +1 -1
  164. package/src/components/UploadButton/types.ts +19 -19
  165. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  166. package/src/components/UploadDocument/index.tsx +1 -1
  167. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  168. package/src/components/UploadFileDialog/index.tsx +1 -1
  169. package/src/components/index.ts +86 -86
  170. package/src/config/axios.ts +74 -74
  171. package/src/config/axiosXTenant.ts +57 -57
  172. package/src/constants/UIConstants.ts +97 -97
  173. package/src/constants/formValidations.ts +6 -6
  174. package/src/constants/index.ts +5 -5
  175. package/src/constants/isDevelopment.ts +3 -3
  176. package/src/constants/permissions.ts +67 -67
  177. package/src/constants/validateMessages.ts +12 -12
  178. package/src/contexts/LoginFormProvider.tsx +39 -39
  179. package/src/contexts/Providers.tsx +60 -59
  180. package/src/contexts/PublicProviders.tsx +30 -30
  181. package/src/contexts/QueryClientProvider.tsx +22 -22
  182. package/src/hooks/index.ts +3 -3
  183. package/src/hooks/useAppInit.ts +33 -33
  184. package/src/hooks/useAuth.ts +96 -92
  185. package/src/hooks/useFetch.ts +53 -53
  186. package/src/hooks/useRouter.ts +31 -31
  187. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  188. package/src/layouts/Components/icons/index.tsx +403 -403
  189. package/src/layouts/Components/styles.tsx +60 -60
  190. package/src/layouts/ComponentsLayout.tsx +3 -3
  191. package/src/permissions/PageWithPermission.tsx +18 -18
  192. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  193. package/src/permissions/ValidateAccess.tsx +18 -18
  194. package/src/permissions/index.ts +2 -3
  195. package/src/react-app-env.d.ts +1 -1
  196. package/src/shared-state/AssetsStore.ts +15 -15
  197. package/src/{permissions → shared-state}/PermissionsStore.ts +352 -352
  198. package/src/shared-state/UserStore.ts +13 -13
  199. package/src/shared-state/index.ts +4 -3
  200. package/src/theme/App.less +3 -3
  201. package/src/theme/MuiThemeProvider.tsx +13 -13
  202. package/src/theme/customCssBaseline.ts +78 -78
  203. package/src/theme/index.css +75 -75
  204. package/src/theme/muiTheme.ts +490 -490
  205. package/src/theme/theme.d.ts +75 -75
  206. package/src/utils/alphabet.ts +23 -23
  207. package/src/utils/arrayPadEnd.ts +3 -3
  208. package/src/utils/formatCurrency.ts +9 -9
  209. package/src/utils/getUrlParams.ts +5 -5
  210. package/src/utils/index.ts +8 -8
  211. package/src/utils/logout.ts +24 -24
  212. package/src/utils/ordinalSuffixOf.ts +14 -14
  213. package/src/utils/romanize.ts +40 -40
  214. package/src/utils/withLocalization.tsx +11 -11
  215. package/src/utils/withRouteWrapper.tsx +25 -25
  216. package/src/utils/withSuspense.tsx +6 -6
  217. package/styled-components.tsx +60 -60
  218. package/todo.md +20 -20
  219. package/tsconfig.json +21 -21
  220. package/src/components/Layout/Header/assets/commuteX.png +0 -0
@@ -1,194 +1,194 @@
1
- import { KeyboardArrowDown, MoreVert } from '@mui/icons-material'
2
- import {
3
- Box,
4
- Button,
5
- ButtonProps,
6
- CircularProgress,
7
- IconButton,
8
- IconButtonProps,
9
- ListItemIcon,
10
- ListItemText,
11
- Menu,
12
- MenuItem,
13
- MenuListProps,
14
- MenuProps,
15
- styled,
16
- } from '@mui/material'
17
- import { ReactNode, useState } from 'react'
18
-
19
- type MenuItem =
20
- | {
21
- label: string | ReactNode
22
- icon?: ReactNode
23
- onClick: (props?: any) => any
24
- }
25
- | { customButton?: ReactNode }
26
-
27
- interface Props {
28
- label?: string
29
- icon?: {
30
- icon: ReactNode
31
- iconProps?: IconButtonProps
32
- outlined?: boolean
33
- }
34
- loading?: boolean
35
- menu: MenuItem[]
36
- buttonProps?: ButtonProps
37
- menuProps?: Omit<MenuProps, 'open'>
38
- menuListProps?: MenuListProps
39
- renderMenuItems?: Array<ReactNode>
40
- }
41
- const defaultIcon = {
42
- icon: <MoreVert color="primary" />,
43
- outlined: true,
44
- }
45
-
46
- export default function DropDownButton({
47
- label,
48
- icon = defaultIcon,
49
- menu = [],
50
- buttonProps,
51
- menuProps,
52
- menuListProps,
53
- loading = false,
54
- renderMenuItems = [],
55
- }: Props) {
56
- const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)
57
- const open = Boolean(anchorEl)
58
-
59
- const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
60
- setAnchorEl(event.currentTarget)
61
- }
62
-
63
- const handleClose = () => {
64
- setAnchorEl(null)
65
- }
66
-
67
- return (
68
- <>
69
- {!label ? (
70
- <StyledIconButton
71
- outlined={icon?.outlined ?? false}
72
- onClick={handleClick}
73
- {...icon.iconProps}
74
- >
75
- {icon.icon}
76
- </StyledIconButton>
77
- ) : (
78
- <StyledDropDownButton
79
- onClick={handleClick}
80
- disabled={loading}
81
- endIcon={
82
- loading ? (
83
- <CircularProgress size="20px" thickness={1.7} />
84
- ) : (
85
- <KeyboardArrowDown />
86
- )
87
- }
88
- {...buttonProps}
89
- >
90
- {label}
91
- </StyledDropDownButton>
92
- )}
93
- <Menu
94
- elevation={3}
95
- id="basic-menu"
96
- anchorEl={anchorEl}
97
- open={open}
98
- onClose={handleClose}
99
- MenuListProps={{ sx: { padding: 0 }, ...menuListProps }}
100
- anchorOrigin={{
101
- vertical: 'bottom',
102
- horizontal: 'right',
103
- }}
104
- transformOrigin={{
105
- vertical: 'top',
106
- horizontal: 'right',
107
- }}
108
- {...menuProps}
109
- >
110
- <RenderMenuItems
111
- menu={menu}
112
- renderMenuItems={renderMenuItems}
113
- handleClose={handleClose}
114
- />
115
- </Menu>
116
- </>
117
- )
118
- }
119
-
120
- const RenderMenuItems = ({ renderMenuItems, menu, handleClose }) => {
121
- if (renderMenuItems?.length) {
122
- return (
123
- <>
124
- {renderMenuItems.map((Item, index) => (
125
- <StyledMenuItem
126
- disableRipple
127
- sx={{
128
- minWidth: '120px',
129
- width: '100%',
130
- padding: 0,
131
- '&:hover': { background: 'none' },
132
- }}
133
- key={index}
134
- >
135
- {Item}
136
- </StyledMenuItem>
137
- ))}
138
- </>
139
- )
140
- }
141
- if (menu?.length) {
142
- return (
143
- <>
144
- {menu.map((item, index) => (
145
- <>
146
- {item?.customButton ? (
147
- item.customButton
148
- ) : (
149
- <StyledMenuItem
150
- sx={{ minWidth: '120px', width: '100%' }}
151
- key={index}
152
- onClick={() => {
153
- handleClose()
154
- item.onClick()
155
- }}
156
- >
157
- {item?.icon && <ListItemIcon>{item.icon}</ListItemIcon>}
158
- <ListItemText>{item.label}</ListItemText>
159
- </StyledMenuItem>
160
- )}
161
- </>
162
- ))}
163
- </>
164
- )
165
- }
166
- }
167
-
168
- const StyledIconButton = styled(IconButton, {
169
- shouldForwardProp: (prop) => prop !== 'outlined',
170
- })<{ outlined?: boolean }>(({ theme, outlined }) => ({
171
- ...(outlined && {
172
- border: `1px solid ${theme.palette.primary.main}`,
173
- borderRadius: '5px',
174
- }),
175
- }))
176
-
177
- const StyledMenuItem = styled(MenuItem)(({}) => ({
178
- display: 'flex',
179
- alignItems: 'center',
180
- '& .MuiListItemIcon-root': {
181
- minWidth: '24px',
182
- },
183
- '& .MuiSvgIcon-root': {
184
- height: '18px',
185
- width: '18px',
186
- },
187
- '& .MuiTypography-root': {
188
- fontWeight: 600,
189
- },
190
- }))
191
-
192
- const StyledDropDownButton = styled(Button)(({}) => ({
193
- padding: '0 14px',
194
- }))
1
+ import { KeyboardArrowDown, MoreVert } from '@mui/icons-material'
2
+ import {
3
+ Box,
4
+ Button,
5
+ ButtonProps,
6
+ CircularProgress,
7
+ IconButton,
8
+ IconButtonProps,
9
+ ListItemIcon,
10
+ ListItemText,
11
+ Menu,
12
+ MenuItem,
13
+ MenuListProps,
14
+ MenuProps,
15
+ styled,
16
+ } from '@mui/material'
17
+ import { ReactNode, useState } from 'react'
18
+
19
+ type MenuItem =
20
+ | {
21
+ label: string | ReactNode
22
+ icon?: ReactNode
23
+ onClick: (props?: any) => any
24
+ }
25
+ | { customButton?: ReactNode }
26
+
27
+ interface Props {
28
+ label?: string
29
+ icon?: {
30
+ icon: ReactNode
31
+ iconProps?: IconButtonProps
32
+ outlined?: boolean
33
+ }
34
+ loading?: boolean
35
+ menu: MenuItem[]
36
+ buttonProps?: ButtonProps
37
+ menuProps?: Omit<MenuProps, 'open'>
38
+ menuListProps?: MenuListProps
39
+ renderMenuItems?: Array<ReactNode>
40
+ }
41
+ const defaultIcon = {
42
+ icon: <MoreVert color="primary" />,
43
+ outlined: true,
44
+ }
45
+
46
+ export default function DropDownButton({
47
+ label,
48
+ icon = defaultIcon,
49
+ menu = [],
50
+ buttonProps,
51
+ menuProps,
52
+ menuListProps,
53
+ loading = false,
54
+ renderMenuItems = [],
55
+ }: Props) {
56
+ const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)
57
+ const open = Boolean(anchorEl)
58
+
59
+ const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
60
+ setAnchorEl(event.currentTarget)
61
+ }
62
+
63
+ const handleClose = () => {
64
+ setAnchorEl(null)
65
+ }
66
+
67
+ return (
68
+ <>
69
+ {!label ? (
70
+ <StyledIconButton
71
+ outlined={icon?.outlined ?? false}
72
+ onClick={handleClick}
73
+ {...icon.iconProps}
74
+ >
75
+ {icon.icon}
76
+ </StyledIconButton>
77
+ ) : (
78
+ <StyledDropDownButton
79
+ onClick={handleClick}
80
+ disabled={loading}
81
+ endIcon={
82
+ loading ? (
83
+ <CircularProgress size="20px" thickness={1.7} />
84
+ ) : (
85
+ <KeyboardArrowDown />
86
+ )
87
+ }
88
+ {...buttonProps}
89
+ >
90
+ {label}
91
+ </StyledDropDownButton>
92
+ )}
93
+ <Menu
94
+ elevation={3}
95
+ id="basic-menu"
96
+ anchorEl={anchorEl}
97
+ open={open}
98
+ onClose={handleClose}
99
+ MenuListProps={{ sx: { padding: 0 }, ...menuListProps }}
100
+ anchorOrigin={{
101
+ vertical: 'bottom',
102
+ horizontal: 'right',
103
+ }}
104
+ transformOrigin={{
105
+ vertical: 'top',
106
+ horizontal: 'right',
107
+ }}
108
+ {...menuProps}
109
+ >
110
+ <RenderMenuItems
111
+ menu={menu}
112
+ renderMenuItems={renderMenuItems}
113
+ handleClose={handleClose}
114
+ />
115
+ </Menu>
116
+ </>
117
+ )
118
+ }
119
+
120
+ const RenderMenuItems = ({ renderMenuItems, menu, handleClose }) => {
121
+ if (renderMenuItems?.length) {
122
+ return (
123
+ <>
124
+ {renderMenuItems.map((Item, index) => (
125
+ <StyledMenuItem
126
+ disableRipple
127
+ sx={{
128
+ minWidth: '120px',
129
+ width: '100%',
130
+ padding: 0,
131
+ '&:hover': { background: 'none' },
132
+ }}
133
+ key={index}
134
+ >
135
+ {Item}
136
+ </StyledMenuItem>
137
+ ))}
138
+ </>
139
+ )
140
+ }
141
+ if (menu?.length) {
142
+ return (
143
+ <>
144
+ {menu.map((item, index) => (
145
+ <>
146
+ {item?.customButton ? (
147
+ item.customButton
148
+ ) : (
149
+ <StyledMenuItem
150
+ sx={{ minWidth: '120px', width: '100%' }}
151
+ key={index}
152
+ onClick={() => {
153
+ handleClose()
154
+ item.onClick()
155
+ }}
156
+ >
157
+ {item?.icon && <ListItemIcon>{item.icon}</ListItemIcon>}
158
+ <ListItemText>{item.label}</ListItemText>
159
+ </StyledMenuItem>
160
+ )}
161
+ </>
162
+ ))}
163
+ </>
164
+ )
165
+ }
166
+ }
167
+
168
+ const StyledIconButton = styled(IconButton, {
169
+ shouldForwardProp: (prop) => prop !== 'outlined',
170
+ })<{ outlined?: boolean }>(({ theme, outlined }) => ({
171
+ ...(outlined && {
172
+ border: `1px solid ${theme.palette.primary.main}`,
173
+ borderRadius: '5px',
174
+ }),
175
+ }))
176
+
177
+ const StyledMenuItem = styled(MenuItem)(({}) => ({
178
+ display: 'flex',
179
+ alignItems: 'center',
180
+ '& .MuiListItemIcon-root': {
181
+ minWidth: '24px',
182
+ },
183
+ '& .MuiSvgIcon-root': {
184
+ height: '18px',
185
+ width: '18px',
186
+ },
187
+ '& .MuiTypography-root': {
188
+ fontWeight: 600,
189
+ },
190
+ }))
191
+
192
+ const StyledDropDownButton = styled(Button)(({}) => ({
193
+ padding: '0 14px',
194
+ }))
@@ -1,28 +1,28 @@
1
- import { ReactNode } from 'react'
2
- import { ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary'
3
- import { QueryErrorResetBoundary } from 'react-query'
4
- import { useLocation } from 'react-router-dom'
5
- import ErrorFallback from './ErrorFallback'
6
-
7
- export default function ErrorBoundary({
8
- children,
9
- resetKey,
10
- }: {
11
- children: ReactNode
12
- resetKey?: string
13
- }) {
14
- const location = useLocation()
15
- return (
16
- <QueryErrorResetBoundary>
17
- {({ reset }) => (
18
- <ReactErrorBoundary
19
- key={resetKey ?? location?.pathname}
20
- fallbackRender={ErrorFallback}
21
- onReset={reset}
22
- >
23
- {children}
24
- </ReactErrorBoundary>
25
- )}
26
- </QueryErrorResetBoundary>
27
- )
28
- }
1
+ import { ReactNode } from 'react'
2
+ import { ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary'
3
+ import { QueryErrorResetBoundary } from 'react-query'
4
+ import { useLocation } from 'react-router-dom'
5
+ import ErrorFallback from './ErrorFallback'
6
+
7
+ export default function ErrorBoundary({
8
+ children,
9
+ resetKey,
10
+ }: {
11
+ children: ReactNode
12
+ resetKey?: string
13
+ }) {
14
+ const location = useLocation()
15
+ return (
16
+ <QueryErrorResetBoundary>
17
+ {({ reset }) => (
18
+ <ReactErrorBoundary
19
+ key={resetKey ?? location?.pathname}
20
+ fallbackRender={ErrorFallback}
21
+ onReset={reset}
22
+ >
23
+ {children}
24
+ </ReactErrorBoundary>
25
+ )}
26
+ </QueryErrorResetBoundary>
27
+ )
28
+ }