@campxdev/shared 1.8.13 → 1.8.14

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 (266) hide show
  1. package/package.json +20 -4
  2. package/antd.customize.less +0 -73
  3. package/exports.ts +0 -19
  4. package/src/assets/fonts/avenir/Avenir-Book.ttf +0 -0
  5. package/src/assets/fonts/avenir/Avenir-Heavy.ttf +0 -0
  6. package/src/assets/fonts/avenir/Avenir-HeavyOblique.ttf +0 -0
  7. package/src/assets/fonts/avenir/Avenir-Medium.ttf +0 -0
  8. package/src/assets/fonts/avenir/Avenir-MediumOblique.ttf +0 -0
  9. package/src/assets/fonts/avenir/index.ts +0 -13
  10. package/src/assets/fonts/poppins/Poppins-Bold.ttf +0 -0
  11. package/src/assets/fonts/poppins/Poppins-Italic.ttf +0 -0
  12. package/src/assets/fonts/poppins/Poppins-Light.ttf +0 -0
  13. package/src/assets/fonts/poppins/Poppins-LightItalic.ttf +0 -0
  14. package/src/assets/fonts/poppins/Poppins-Medium.ttf +0 -0
  15. package/src/assets/fonts/poppins/Poppins-MediumItalic.ttf +0 -0
  16. package/src/assets/fonts/poppins/Poppins-Regular.ttf +0 -0
  17. package/src/assets/fonts/poppins/Poppins-SemiBold.ttf +0 -0
  18. package/src/assets/fonts/poppins/Poppins-SemiBoldItalic.ttf +0 -0
  19. package/src/assets/fonts/poppins/index.ts +0 -18
  20. package/src/assets/images/401.png +0 -0
  21. package/src/assets/images/403.png +0 -0
  22. package/src/assets/images/404.png +0 -0
  23. package/src/assets/images/404notfound.svg +0 -1
  24. package/src/assets/images/500.png +0 -0
  25. package/src/assets/images/avatar.png +0 -0
  26. package/src/assets/images/campx_logo__full_primary.png +0 -0
  27. package/src/assets/images/index.ts +0 -17
  28. package/src/assets/images/internalservererror.svg +0 -1
  29. package/src/assets/images/noInternet.svg +0 -1
  30. package/src/assets/images/nointernet.png +0 -0
  31. package/src/assets/images/notfound.png +0 -0
  32. package/src/assets/images/pagenotfound.svg +0 -1
  33. package/src/assets/images/permissiondenied.svg +0 -1
  34. package/src/assets/images/unauth.svg +0 -92
  35. package/src/components/ActionButton.tsx +0 -20
  36. package/src/components/Attachment.tsx +0 -26
  37. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +0 -57
  38. package/src/components/AutocompleteSearch/index.tsx +0 -1
  39. package/src/components/Breadcrumbs.tsx +0 -72
  40. package/src/components/Card.tsx +0 -98
  41. package/src/components/CardsGrid.tsx +0 -28
  42. package/src/components/ChangePassword.tsx +0 -123
  43. package/src/components/Chips.tsx +0 -81
  44. package/src/components/Detail.tsx +0 -15
  45. package/src/components/DetailsGrid.tsx +0 -52
  46. package/src/components/DividerHeading.tsx +0 -41
  47. package/src/components/DrawerWrapper/DialogWrapper.tsx +0 -67
  48. package/src/components/DrawerWrapper/DrawerTemplate.tsx +0 -53
  49. package/src/components/DrawerWrapper/DrawerWrapper.tsx +0 -53
  50. package/src/components/DropDownButton/AnchorElement.tsx +0 -44
  51. package/src/components/DropDownButton/DropDownButton.tsx +0 -184
  52. package/src/components/DropDownButton/DropdownMenuItem.tsx +0 -110
  53. package/src/components/DropDownButton/index.tsx +0 -1
  54. package/src/components/DropDownButton/styles.tsx +0 -59
  55. package/src/components/ErrorBoundary/ErrorBoundary.tsx +0 -33
  56. package/src/components/ErrorBoundary/ErrorFallback.tsx +0 -241
  57. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +0 -13
  58. package/src/components/ErrorBoundary/index.tsx +0 -1
  59. package/src/components/ErrorBox.tsx +0 -42
  60. package/src/components/ExcelToJsonInput/ExcelJsonUpload.tsx +0 -50
  61. package/src/components/ExcelToJsonInput/ExcelToJsonInput.tsx +0 -57
  62. package/src/components/ExcelToJsonInput/index.tsx +0 -1
  63. package/src/components/FilterComponents/FilterButton.tsx +0 -56
  64. package/src/components/FilterComponents/SearchBar.tsx +0 -45
  65. package/src/components/FloatingContainer.tsx +0 -33
  66. package/src/components/Form/Form.tsx +0 -147
  67. package/src/components/Form/RenderForm.tsx +0 -189
  68. package/src/components/FullScreenLoader.tsx +0 -19
  69. package/src/components/HookForm/AutoCompleteSearch.tsx +0 -113
  70. package/src/components/HookForm/DatePicker.tsx +0 -40
  71. package/src/components/HookForm/DateTimePicker.tsx +0 -47
  72. package/src/components/HookForm/FormLabel.tsx +0 -14
  73. package/src/components/HookForm/MultiCheckbox.tsx +0 -69
  74. package/src/components/HookForm/MultiSelect.tsx +0 -53
  75. package/src/components/HookForm/RadioGroup.tsx +0 -47
  76. package/src/components/HookForm/SingleCheckbox.tsx +0 -34
  77. package/src/components/HookForm/SingleSelect.tsx +0 -46
  78. package/src/components/HookForm/TextField.tsx +0 -40
  79. package/src/components/HookForm/TimePicker.tsx +0 -40
  80. package/src/components/HookForm/index.ts +0 -23
  81. package/src/components/IconButtons/IconButtons.tsx +0 -137
  82. package/src/components/IconButtons/Icons.tsx +0 -268
  83. package/src/components/IconButtons/assets/edit.svg +0 -4
  84. package/src/components/IconButtons/assets/eye.svg +0 -6
  85. package/src/components/IconButtons/assets/trash.svg +0 -7
  86. package/src/components/IconButtons/index.tsx +0 -8
  87. package/src/components/IconLabel.tsx +0 -37
  88. package/src/components/Image/Image.tsx +0 -45
  89. package/src/components/Image/broken-image.png +0 -0
  90. package/src/components/Image/index.tsx +0 -1
  91. package/src/components/ImageUpload.tsx +0 -98
  92. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +0 -216
  93. package/src/components/Input/AsyncSearchSelect/index.tsx +0 -1
  94. package/src/components/Input/AsyncSearchSelect/styles.tsx +0 -105
  95. package/src/components/Input/AutoCompleteSearch.tsx +0 -121
  96. package/src/components/Input/DatePicker.tsx +0 -87
  97. package/src/components/Input/DateRangePicker.tsx +0 -105
  98. package/src/components/Input/DateTimePicker.tsx +0 -84
  99. package/src/components/Input/FormLabel.tsx +0 -21
  100. package/src/components/Input/MultiCheckbox.tsx +0 -64
  101. package/src/components/Input/MultiSelect.tsx +0 -150
  102. package/src/components/Input/RadioGroup.tsx +0 -104
  103. package/src/components/Input/SingleCheckbox.tsx +0 -78
  104. package/src/components/Input/SingleSelect.tsx +0 -104
  105. package/src/components/Input/TextField.tsx +0 -46
  106. package/src/components/Input/TimePicker.tsx +0 -77
  107. package/src/components/Input/index.ts +0 -26
  108. package/src/components/Input/types.ts +0 -3
  109. package/src/components/JsonPreview.tsx +0 -7
  110. package/src/components/LabelValue.tsx +0 -21
  111. package/src/components/Layout/ChangePassword.tsx +0 -49
  112. package/src/components/Layout/Header/AppHeader.tsx +0 -112
  113. package/src/components/Layout/Header/AppsMenu.tsx +0 -105
  114. package/src/components/Layout/Header/HeaderActions/CogWheelMenu.tsx +0 -33
  115. package/src/components/Layout/Header/HeaderActions/FreshDeskHelpButton.tsx +0 -24
  116. package/src/components/Layout/Header/HeaderActions/HeaderActions.tsx +0 -18
  117. package/src/components/Layout/Header/HeaderActions/UserBox.tsx +0 -56
  118. package/src/components/Layout/Header/Notification.tsx +0 -13
  119. package/src/components/Layout/Header/applications.ts +0 -103
  120. package/src/components/Layout/Header/assets/background.png +0 -0
  121. package/src/components/Layout/Header/assets/campx.png +0 -0
  122. package/src/components/Layout/Header/assets/campx_square_small.svg +0 -9
  123. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  124. package/src/components/Layout/Header/assets/commutex.png +0 -0
  125. package/src/components/Layout/Header/assets/commutex.svg +0 -14
  126. package/src/components/Layout/Header/assets/commutexSmall.svg +0 -11
  127. package/src/components/Layout/Header/assets/contactBg.png +0 -0
  128. package/src/components/Layout/Header/assets/enroll.svg +0 -14
  129. package/src/components/Layout/Header/assets/enroll_logo.svg +0 -9
  130. package/src/components/Layout/Header/assets/enrollx.svg +0 -14
  131. package/src/components/Layout/Header/assets/entrollx.png +0 -0
  132. package/src/components/Layout/Header/assets/exams_small.svg +0 -12
  133. package/src/components/Layout/Header/assets/examsx.svg +0 -14
  134. package/src/components/Layout/Header/assets/examx.png +0 -0
  135. package/src/components/Layout/Header/assets/hostel_small.svg +0 -13
  136. package/src/components/Layout/Header/assets/hostelx.png +0 -0
  137. package/src/components/Layout/Header/assets/hostelx.svg +0 -13
  138. package/src/components/Layout/Header/assets/index.ts +0 -35
  139. package/src/components/Layout/Header/assets/libraryx.svg +0 -12
  140. package/src/components/Layout/Header/assets/libreryx.png +0 -0
  141. package/src/components/Layout/Header/assets/pay_small.svg +0 -16
  142. package/src/components/Layout/Header/assets/payx.png +0 -0
  143. package/src/components/Layout/Header/assets/payx.svg +0 -19
  144. package/src/components/Layout/Header/assets/people_small.svg +0 -9
  145. package/src/components/Layout/Header/assets/peoplex.svg +0 -12
  146. package/src/components/Layout/Header/assets/pepolex.png +0 -0
  147. package/src/components/Layout/Header/assets/squarex.svg +0 -12
  148. package/src/components/Layout/Header/icons.tsx +0 -57
  149. package/src/components/Layout/Header/index.tsx +0 -1
  150. package/src/components/Layout/Header/styles.tsx +0 -133
  151. package/src/components/Layout/Helmet.tsx +0 -49
  152. package/src/components/Layout/LayoutWrapper.tsx +0 -28
  153. package/src/components/Layout/SideMenuHeader.tsx +0 -29
  154. package/src/components/Layout/SideNav.tsx +0 -168
  155. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +0 -273
  156. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +0 -94
  157. package/src/components/Layout/Tickets/MyTickets.tsx +0 -72
  158. package/src/components/Layout/Tickets/TicketDetails.tsx +0 -65
  159. package/src/components/Layout/Tickets/TimeLine.tsx +0 -64
  160. package/src/components/Layout/Tickets/index.tsx +0 -1
  161. package/src/components/Layout/Tickets/services.ts +0 -11
  162. package/src/components/Layout/Tickets/styles.tsx +0 -136
  163. package/src/components/LinearProgress.tsx +0 -19
  164. package/src/components/ListItemButton.tsx +0 -95
  165. package/src/components/LoginForm.tsx +0 -279
  166. package/src/components/MediaRow/MediaRow.tsx +0 -67
  167. package/src/components/MediaRow/index.tsx +0 -1
  168. package/src/components/ModalButtons/DialogButton.tsx +0 -126
  169. package/src/components/ModalButtons/DrawerButton.tsx +0 -115
  170. package/src/components/ModalButtons/index.tsx +0 -4
  171. package/src/components/NoDataIllustration.tsx +0 -32
  172. package/src/components/PageContent.tsx +0 -12
  173. package/src/components/PageHeader.tsx +0 -55
  174. package/src/components/PageNotFound.tsx +0 -26
  175. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +0 -40
  176. package/src/components/PopupConfirm/PopupConfirm.tsx +0 -67
  177. package/src/components/PopupConfirm/animation.gif +0 -0
  178. package/src/components/PopupConfirm/index.tsx +0 -1
  179. package/src/components/PopupConfirm/useConfirm.ts +0 -47
  180. package/src/components/ResetPassword.tsx +0 -107
  181. package/src/components/Row.tsx +0 -24
  182. package/src/components/Spinner.tsx +0 -18
  183. package/src/components/StepsHeader/StepsHeader.tsx +0 -115
  184. package/src/components/StepsHeader/index.tsx +0 -1
  185. package/src/components/StyledTableContainer.tsx +0 -33
  186. package/src/components/SwitchButton.tsx +0 -41
  187. package/src/components/Table.tsx +0 -42
  188. package/src/components/Tables/BasicTable/Table.tsx +0 -198
  189. package/src/components/Tables/BasicTable/TableFooter.tsx +0 -86
  190. package/src/components/Tables/BasicTable/index.tsx +0 -1
  191. package/src/components/Tables/ReactTable/BatchActionsHeader.tsx +0 -58
  192. package/src/components/Tables/ReactTable/ReactTable.tsx +0 -295
  193. package/src/components/Tables/ReactTable/RenderTableBody.tsx +0 -49
  194. package/src/components/Tables/ReactTable/index.tsx +0 -1
  195. package/src/components/Tables/ReactTable/react-table-config.d.ts +0 -128
  196. package/src/components/Tables/common/NoRecordsFound.tsx +0 -27
  197. package/src/components/Tables/common/TableStats.tsx +0 -22
  198. package/src/components/Tables/common/icons.tsx +0 -50
  199. package/src/components/Tables/common/no-data-illu.svg +0 -1
  200. package/src/components/Tables/common/styles.tsx +0 -170
  201. package/src/components/Tables/common/types.ts +0 -57
  202. package/src/components/Tabs/NavigationTabs.tsx +0 -80
  203. package/src/components/Tabs/Tabs.tsx +0 -53
  204. package/src/components/Tabs/TabsContainer.tsx +0 -53
  205. package/src/components/Tabs/index.tsx +0 -1
  206. package/src/components/Tabs/styles.tsx +0 -55
  207. package/src/components/ToastContainer/ToastContainer.tsx +0 -57
  208. package/src/components/ToastContainer/index.tsx +0 -1
  209. package/src/components/UploadButton/UploadButton.tsx +0 -126
  210. package/src/components/UploadButton/index.tsx +0 -1
  211. package/src/components/UploadButton/types.ts +0 -19
  212. package/src/components/UploadDocument.tsx +0 -108
  213. package/src/components/UploadFileDialog/AnimatedUploadFile.gif +0 -0
  214. package/src/components/UploadFileDialog/UploadFileDialog.tsx +0 -238
  215. package/src/components/UploadFileDialog/index.tsx +0 -1
  216. package/src/components/index.ts +0 -106
  217. package/src/config/axios.ts +0 -73
  218. package/src/config/axiosEvaluator.ts +0 -53
  219. package/src/config/axiosXTenant.ts +0 -57
  220. package/src/constants/UIConstants.ts +0 -97
  221. package/src/constants/formValidations.ts +0 -6
  222. package/src/constants/index.ts +0 -5
  223. package/src/constants/isDevelopment.ts +0 -4
  224. package/src/constants/permissions.ts +0 -67
  225. package/src/constants/validateMessages.ts +0 -12
  226. package/src/contexts/LoginFormProvider.tsx +0 -44
  227. package/src/contexts/Providers.tsx +0 -50
  228. package/src/contexts/PublicProviders.tsx +0 -30
  229. package/src/contexts/QueryClientProvider.tsx +0 -22
  230. package/src/hooks/index.ts +0 -4
  231. package/src/hooks/useAuth.ts +0 -96
  232. package/src/hooks/useFetch.ts +0 -53
  233. package/src/hooks/useFilters.ts +0 -83
  234. package/src/hooks/useRouter.ts +0 -31
  235. package/src/layouts/Components/DashBoardMenu.tsx +0 -232
  236. package/src/layouts/Components/icons/index.tsx +0 -403
  237. package/src/layouts/Components/styles.tsx +0 -74
  238. package/src/layouts/ComponentsLayout.tsx +0 -3
  239. package/src/permissions/PageWithPermission.tsx +0 -18
  240. package/src/permissions/PermissionDeniedPage.tsx +0 -16
  241. package/src/permissions/ValidateAccess.tsx +0 -18
  242. package/src/permissions/index.ts +0 -2
  243. package/src/react-app-env.d.ts +0 -1
  244. package/src/shared-state/AssetsStore.ts +0 -15
  245. package/src/shared-state/PermissionsStore.ts +0 -384
  246. package/src/shared-state/UserStore.ts +0 -13
  247. package/src/shared-state/index.ts +0 -4
  248. package/src/theme/App.less +0 -3
  249. package/src/theme/MuiThemeProvider.tsx +0 -18
  250. package/src/theme/customCssBaseline.ts +0 -135
  251. package/src/theme/index.css +0 -28
  252. package/src/theme/muiTheme.ts +0 -595
  253. package/src/theme/theme.d.ts +0 -75
  254. package/src/utils/adminAxios.ts +0 -15
  255. package/src/utils/alphabet.ts +0 -23
  256. package/src/utils/arrayPadEnd.ts +0 -3
  257. package/src/utils/formatCurrency.ts +0 -9
  258. package/src/utils/getUrlParams.ts +0 -5
  259. package/src/utils/index.ts +0 -7
  260. package/src/utils/logout.ts +0 -25
  261. package/src/utils/ordinalSuffixOf.ts +0 -14
  262. package/src/utils/romanize.ts +0 -40
  263. package/src/utils/withRouteWrapper.tsx +0 -25
  264. package/src/utils/withSuspense.tsx +0 -6
  265. package/styled-components.tsx +0 -60
  266. package/tsconfig.json +0 -21
@@ -1,184 +0,0 @@
1
- import { MoreVert } from '@mui/icons-material'
2
- import {
3
- ButtonProps,
4
- DialogProps,
5
- DrawerProps,
6
- IconButtonProps,
7
- MenuListProps,
8
- MenuProps,
9
- } from '@mui/material'
10
- import { ReactNode, useState } from 'react'
11
- import { useImmer } from 'use-immer'
12
- import { CustomDialog } from '../ModalButtons/DialogButton'
13
- import { CustomDrawer } from '../ModalButtons/DrawerButton'
14
- import AnchorElement from './AnchorElement'
15
- import {
16
- IMenuItemProps,
17
- MenuItemType,
18
- RenderMenuItem,
19
- } from './DropdownMenuItem'
20
- import { StyledMenu } from './styles'
21
-
22
- interface DropDownButtonProps {
23
- icon?: {
24
- icon: ReactNode
25
- iconProps?: IconButtonProps
26
- outlined?: boolean
27
- }
28
- button?: {
29
- label?: string
30
- buttonProps?: ButtonProps
31
- }
32
- anchor?: (props: { open: () => void }) => ReactNode
33
- loading?: boolean
34
- menu: IMenuItemProps[]
35
- menuProps?: Omit<MenuProps, 'open'>
36
- menuListProps?: MenuListProps
37
- }
38
-
39
- const defaultIcon = {
40
- icon: <MoreVert color="primary" />,
41
- outlined: true,
42
- }
43
-
44
- interface IModalState {
45
- open: boolean
46
- content: any
47
- contentTitle: ReactNode
48
- type: MenuItemType
49
- props: Omit<DialogProps, 'open'> | Omit<DrawerProps, 'open'>
50
- }
51
-
52
- const DropDownButton = ({
53
- button,
54
- icon = defaultIcon,
55
- menu = [],
56
- menuProps,
57
- menuListProps,
58
- loading = false,
59
- anchor,
60
- }: DropDownButtonProps) => {
61
- const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)
62
- const [open, setOpen] = useState(false)
63
-
64
- const [modalState, setModalState] = useImmer<IModalState>({
65
- open: false,
66
- content: null,
67
- contentTitle: '',
68
- type: 'drawer',
69
- props: null,
70
- })
71
-
72
- const handleClick = (event: any) => {
73
- setAnchorEl(event.currentTarget)
74
- setOpen(true)
75
- }
76
-
77
- const handleClose = () => {
78
- setAnchorEl(null)
79
- setOpen(false)
80
- }
81
-
82
- const onModalClose = () => {
83
- setModalState((s) => {
84
- s.open = false
85
- s.content = null
86
- })
87
- }
88
- const onModalOpen = (item, props) => {
89
- setModalState((s) => {
90
- s.content = item.content
91
- s.open = true
92
- s.type = item.actionType
93
- s.props = props
94
- s.contentTitle = item?.contentTitle ?? ''
95
- })
96
- }
97
-
98
- return (
99
- <>
100
- <AnchorElement
101
- anchor={anchor}
102
- loading={loading}
103
- button={button}
104
- icon={icon}
105
- handleClick={handleClick}
106
- />
107
- <StyledMenu
108
- elevation={0}
109
- id="basic-menu"
110
- anchorEl={anchorEl}
111
- keepMounted
112
- open={open}
113
- onClose={handleClose}
114
- PaperProps={{
115
- elevation: 0,
116
- }}
117
- MenuListProps={{ ...menuListProps }}
118
- anchorOrigin={{
119
- vertical: 'bottom',
120
- horizontal: 'right',
121
- }}
122
- transitionDuration={150}
123
- transformOrigin={{
124
- vertical: 'top',
125
- horizontal: 'right',
126
- }}
127
- {...menuProps}
128
- >
129
- {menu.map((item, index) => (
130
- <RenderMenuItem
131
- key={index}
132
- onModalOpen={(props) => onModalOpen(item, props)}
133
- modalState={modalState}
134
- handleClose={handleClose}
135
- actionType={item?.actionType}
136
- {...item}
137
- />
138
- ))}
139
- </StyledMenu>
140
- {modalState?.open && (
141
- <RenderContent
142
- onClose={onModalClose}
143
- modalState={modalState}
144
- contentType={modalState.type}
145
- />
146
- )}
147
- </>
148
- )
149
- }
150
-
151
- export default DropDownButton
152
-
153
- const RenderContent = ({
154
- contentType,
155
- modalState,
156
- onClose,
157
- }: {
158
- contentType: MenuItemType
159
- modalState: any
160
- onClose: () => void
161
- }) => {
162
- if (contentType === 'dialog')
163
- return (
164
- <CustomDialog
165
- onClose={onClose}
166
- open={modalState.open}
167
- content={modalState.content}
168
- title={modalState?.contentTitle}
169
- dialogProps={modalState?.props}
170
- />
171
- )
172
-
173
- if (contentType === 'drawer')
174
- return (
175
- <CustomDrawer
176
- onClose={onClose}
177
- open={modalState.open}
178
- content={modalState.content}
179
- title={modalState?.contentTitle}
180
- drawerProps={modalState?.props}
181
- />
182
- )
183
- return <></>
184
- }
@@ -1,110 +0,0 @@
1
- import {
2
- DialogProps,
3
- DrawerProps,
4
- ListItemIcon,
5
- ListItemText,
6
- styled,
7
- } from '@mui/material'
8
- import { ReactNode } from 'react'
9
- import { Link } from 'react-router-dom'
10
- import { DrawerButtonProps } from '../ModalButtons/DrawerButton'
11
- import { StyledMenuItem } from './styles'
12
-
13
- const StyledLink = styled(Link)(({ theme }) => ({
14
- display: 'block',
15
- textTransform: 'none',
16
- textDecoration: 'none',
17
- }))
18
-
19
- export type MenuItemType = 'normal' | 'dialog' | 'drawer' | 'link'
20
-
21
- export type MenuItemButtonProps = {
22
- icon?: ReactNode
23
- label: ReactNode
24
- onClick: () => void
25
- link?: {
26
- to: string
27
- target?: '_self' | '_blank'
28
- }
29
- }
30
-
31
- const MenuItemButton = ({
32
- icon,
33
- label,
34
- onClick,
35
- ...props
36
- }: MenuItemButtonProps) => {
37
- return (
38
- <StyledMenuItem
39
- sx={{ minWidth: '180px', width: '100%' }}
40
- onClick={onClick}
41
- {...props}
42
- >
43
- {icon && <ListItemIcon>{icon}</ListItemIcon>}
44
- <ListItemText>{label}</ListItemText>
45
- </StyledMenuItem>
46
- )
47
- }
48
-
49
- export type IMenuItemProps = Omit<MenuItemButtonProps, 'onClick'> & {
50
- content?: DrawerButtonProps['content']
51
- contentTitle?: ReactNode
52
- actionType?: MenuItemType
53
- onClick?: () => void
54
- dialogProps?: Omit<DialogProps, 'open'>
55
- drawerProps?: Omit<DrawerProps, 'open'>
56
- }
57
-
58
- export interface IRenderMenuItemProps extends IMenuItemProps {
59
- handleClose: () => void
60
- modalState: any
61
- onModalOpen: (props: any) => void
62
- }
63
-
64
- export const RenderMenuItem = ({
65
- onClick,
66
- actionType = 'normal',
67
- handleClose,
68
- modalState,
69
- onModalOpen,
70
- link,
71
- drawerProps,
72
- dialogProps,
73
- ...props
74
- }: IRenderMenuItemProps) => {
75
- const renderMenuItem: Record<MenuItemType, ReactNode> = {
76
- normal: (
77
- <MenuItemButton
78
- {...props}
79
- onClick={() => {
80
- onClick()
81
- handleClose()
82
- }}
83
- />
84
- ),
85
- dialog: (
86
- <MenuItemButton
87
- {...props}
88
- onClick={() => {
89
- onModalOpen(dialogProps)
90
- handleClose()
91
- }}
92
- />
93
- ),
94
- drawer: (
95
- <MenuItemButton
96
- {...props}
97
- onClick={() => {
98
- onModalOpen(drawerProps)
99
- handleClose()
100
- }}
101
- />
102
- ),
103
- link: (
104
- <StyledLink to={link?.to ?? ''} target={link?.target ?? '_blank'}>
105
- <MenuItemButton {...props} onClick={() => {}} />
106
- </StyledLink>
107
- ),
108
- }
109
- return <>{renderMenuItem[actionType]}</>
110
- }
@@ -1 +0,0 @@
1
- export { default } from './DropDownButton'
@@ -1,59 +0,0 @@
1
- import { Button, IconButton, Menu, MenuItem, styled } from '@mui/material'
2
-
3
- export const StyledIconButton = styled(IconButton, {
4
- shouldForwardProp: (prop) => prop !== 'outlined',
5
- })<{ outlined?: boolean; size: 'small' | 'regular' }>(
6
- ({ theme, outlined, size }) => ({
7
- ...(outlined && {
8
- border: `1px solid ${theme.palette.primary.main}`,
9
- borderRadius: '5px',
10
- height: '40px',
11
- width: '40px',
12
- ...(size === 'small' && {}),
13
- }),
14
- }),
15
- )
16
-
17
- export const StyledMenuItem = styled(MenuItem)(({}) => ({
18
- display: 'flex',
19
- alignItems: 'center',
20
- height: '60px',
21
- '& .MuiListItemIcon-root': {
22
- minWidth: '24px',
23
- },
24
- '& .MuiSvgIcon-root': {
25
- height: '18px',
26
- width: '18px',
27
- },
28
- }))
29
-
30
- export const StyledDropDownButton = styled(Button)(({}) => ({
31
- padding: '0 15px',
32
- minWidth: '180px',
33
- justifyContent: 'space-between',
34
- }))
35
-
36
- export const StyledMenu = styled(Menu)(({ theme }) => ({
37
- '& .MuiPaper-root': {
38
- borderRadius: '10px',
39
- border: '1px solid #1212121A',
40
- marginTop: '10px',
41
- boxShadow: '0px 4px 16px #0000000F',
42
- },
43
- '& .MuiList-root': {
44
- minWidth: '240px',
45
- padding: 0,
46
- '& li': {
47
- borderBottom: theme.borders.grayLight,
48
- ':hover': {
49
- backgroundColor: 'rgba(0, 0, 0, 0.025)',
50
- },
51
- },
52
- '& > :last-child': {
53
- borderBottom: 'none',
54
- '& li': {
55
- borderBottom: 'none',
56
- },
57
- },
58
- },
59
- }))
@@ -1,33 +0,0 @@
1
- import { ReactElement, ReactNode } from 'react'
2
- import {
3
- ErrorBoundary as ReactErrorBoundary,
4
- FallbackProps,
5
- } from 'react-error-boundary'
6
- import { QueryErrorResetBoundary } from 'react-query'
7
- import { useLocation } from 'react-router-dom'
8
- import ErrorFallback from './ErrorFallback'
9
-
10
- export default function ErrorBoundary({
11
- children,
12
- resetKey,
13
- customFallback,
14
- }: {
15
- children: ReactNode
16
- resetKey?: string
17
- customFallback?: (props: FallbackProps) => JSX.Element
18
- }) {
19
- const location = useLocation()
20
- return (
21
- <QueryErrorResetBoundary>
22
- {({ reset }) => (
23
- <ReactErrorBoundary
24
- key={resetKey ?? location?.pathname}
25
- fallbackRender={customFallback ?? ErrorFallback}
26
- onReset={reset}
27
- >
28
- {children}
29
- </ReactErrorBoundary>
30
- )}
31
- </QueryErrorResetBoundary>
32
- )
33
- }
@@ -1,241 +0,0 @@
1
- import { Alert, Box, Button, Divider, styled, Typography } from '@mui/material'
2
- import { useEffect, useState } from 'react'
3
- import {
4
- nointernet,
5
- pagenotfound,
6
- permissiondenied,
7
- unauth,
8
- internalserver,
9
- } from '../../assets/images'
10
- import Cookies from 'js-cookie'
11
- import LoginForm from '../LoginForm'
12
- import { useModal } from '../DrawerWrapper/DrawerWrapper'
13
- import { PermissionsStore } from '../../shared-state'
14
- import axios from '../../config/axios'
15
-
16
- const StyledAlert = styled(Alert)(({ theme }) => ({
17
- height: '60px',
18
- border: `1px solid ${theme.palette.error.main}`,
19
- display: 'flex',
20
- alignItems: 'center',
21
- '& .MuiAlert-message': {
22
- padding: 0,
23
- },
24
- '& .MuiTypography-root': {
25
- margin: 0,
26
- },
27
- position: 'relative',
28
- '& .retryBtn': {
29
- color: '#661b2a',
30
- position: 'absolute',
31
- right: 8,
32
- top: 8,
33
- },
34
- }))
35
-
36
- const StyledBox = styled(Box)(({ theme }) => ({
37
- width: '100%',
38
- display: 'flex',
39
- flexDirection: 'column',
40
- alignItems: 'center',
41
- justifyContent: 'center',
42
- }))
43
-
44
- export default function ErrorFallback({ error, resetErrorBoundary }) {
45
- if (error?.response?.status) {
46
- switch (error?.response?.status) {
47
- case 401:
48
- return <UnAuth resetBoundary={resetErrorBoundary} />
49
-
50
- case 500:
51
- return (
52
- <InternalServer resetBoundary={resetErrorBoundary} error={error} />
53
- )
54
-
55
- case 403:
56
- return <PemissionDenied resetBoundary={resetErrorBoundary} />
57
-
58
- default:
59
- return (
60
- <InternalServer resetBoundary={resetErrorBoundary} error={error} />
61
- )
62
- }
63
- }
64
-
65
- if (error?.message === 'Network Error') {
66
- return <NoInternet resetBoundary={resetErrorBoundary} />
67
- }
68
-
69
- return (
70
- <Box sx={{ marginTop: '16px', padding: '20px' }}>
71
- <StyledAlert severity="error">
72
- {error?.response?.data?.message ?? error?.message}
73
- <Button
74
- className="retryBtn"
75
- onClick={() => resetErrorBoundary()}
76
- size="small"
77
- color="error"
78
- variant="outlined"
79
- >
80
- Try Again
81
- </Button>
82
- </StyledAlert>
83
- </Box>
84
- )
85
- }
86
-
87
- export function PageNotFound({ resetBoundary }) {
88
- return (
89
- <>
90
- <StyledBox>
91
- <img
92
- src={pagenotfound}
93
- alt="page not found"
94
- width={470}
95
- style={{ marginTop: '20px' }}
96
- />
97
- <Typography variant="h1">Page Not Found.</Typography>
98
- <Button sx={{ marginTop: '20px' }} onClick={() => resetBoundary()}>
99
- Try Again
100
- </Button>
101
- </StyledBox>
102
- </>
103
- )
104
- }
105
-
106
- export function NoInternet({ resetBoundary }) {
107
- return (
108
- <>
109
- <StyledBox>
110
- <img src={nointernet} alt="No Internet Found" width={470} />
111
- <Typography variant="h1">No Internet Found.</Typography>
112
- <Button sx={{ marginTop: '20px' }} onClick={() => resetBoundary()}>
113
- Try Again
114
- </Button>
115
- </StyledBox>
116
- </>
117
- )
118
- }
119
-
120
- export function PemissionDenied({ resetBoundary }) {
121
- return (
122
- <>
123
- <StyledBox>
124
- <img src={permissiondenied} alt="permission denied" width={470} />
125
- <Typography variant="h1">Permission Denied.</Typography>
126
- <Button sx={{ marginTop: '20px' }} onClick={() => resetBoundary()}>
127
- Try Again
128
- </Button>
129
- </StyledBox>
130
- </>
131
- )
132
- }
133
-
134
- export function InternalServer({ resetBoundary, error }) {
135
- return (
136
- <>
137
- <StyledBox>
138
- <img src={internalserver} alt="internal server error" width={470} />
139
- <Typography variant="h1" marginTop={'20px'}>
140
- Internal Server Error.
141
- </Typography>
142
- <Typography variant="body1">
143
- {error?.response?.data?.message
144
- ? typeof error?.response?.data?.message === 'string'
145
- ? error?.response?.data?.message
146
- : JSON.stringify(error?.response?.data?.message)
147
- : 'Internal Server Error'}
148
- </Typography>
149
- <Button
150
- size="small"
151
- variant="outlined"
152
- sx={{ marginTop: '20px' }}
153
- onClick={() => resetBoundary()}
154
- >
155
- Try Again
156
- </Button>
157
- </StyledBox>
158
- </>
159
- )
160
- }
161
-
162
- export function UnAuth({ resetBoundary }) {
163
- const modal = useModal()
164
- const [username, setUsername] = useState('')
165
- const [loading, setLoading] = useState(false)
166
-
167
- const url = window.location.origin
168
- const origin = window?.location?.origin?.split('.')
169
- const isLocalHost =
170
- process.env.NODE_ENV === 'development' ||
171
- origin?.slice(-2).join('.') === 'campx.dev'
172
- const sessionCookie = Cookies.get('campx_session_key')
173
- const appinit = async () => {
174
- setLoading(true)
175
- await axios
176
- .get('/auth/my-permissions')
177
- .then((res) => {
178
- setUsername(res.data.user.fullName)
179
- PermissionsStore.update((s) => {
180
- s.permissions = {
181
- ...res.data?.permissions,
182
- can_settings_view: 1,
183
- can_dashboard_view: 1,
184
- can_individual_pages_view: 1,
185
- } as any
186
- })
187
- setLoading(false)
188
- })
189
- .catch((e) => {
190
- modal({
191
- title: 'Login',
192
- content: () => <LoginForm />,
193
- })
194
- })
195
- }
196
- function LoginPage() {
197
- if (isLocalHost) {
198
- if (!sessionCookie) {
199
- modal({
200
- title: 'Login',
201
- content: () => <LoginForm />,
202
- })
203
- } else {
204
- appinit()
205
- }
206
- } else {
207
- if (!sessionCookie) {
208
- window.location.replace(`https://www.id.campx.in/?redirect_to=${url}`)
209
- } else {
210
- appinit()
211
- }
212
- }
213
- }
214
-
215
- return (
216
- <>
217
- <StyledBox>
218
- <img src={unauth} alt="unauthorized" width={470} />
219
- <Typography variant="h1" marginTop={'20px'}>
220
- UnAuthorized.
221
- </Typography>
222
- <Box
223
- sx={{
224
- display: 'flex',
225
- marginTop: '20px',
226
- }}
227
- >
228
- <Button
229
- variant="outlined"
230
- sx={{ marginRight: '10px' }}
231
- onClick={() => resetBoundary()}
232
- >
233
- Try Again
234
- </Button>
235
-
236
- <Button onClick={() => LoginPage()}>Click here to Login</Button>
237
- </Box>
238
- </StyledBox>
239
- </>
240
- )
241
- }
@@ -1,13 +0,0 @@
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 +0,0 @@
1
- export { default } from './ErrorBoundary'
@@ -1,42 +0,0 @@
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
- }))