@campxdev/shared 1.4.9 → 1.4.11

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 (213) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +18 -18
  3. package/package.json +86 -86
  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/DropDownButton.tsx +177 -177
  24. package/src/components/DropDownButton/index.tsx +1 -1
  25. package/src/components/DropDownButton/styles.tsx +56 -56
  26. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  27. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  28. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  29. package/src/components/ErrorBoundary/index.tsx +1 -1
  30. package/src/components/ErrorBox.tsx +42 -42
  31. package/src/components/FloatingContainer.tsx +33 -33
  32. package/src/components/Form/Form.tsx +156 -156
  33. package/src/components/Form/RenderForm.tsx +188 -188
  34. package/src/components/FullCalendar/Actions.tsx +162 -162
  35. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  36. package/src/components/FullScreenLoader.tsx +19 -19
  37. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  38. package/src/components/HookForm/DatePicker.tsx +40 -40
  39. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  40. package/src/components/HookForm/FormLabel.tsx +14 -14
  41. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  42. package/src/components/HookForm/MultiSelect.tsx +50 -50
  43. package/src/components/HookForm/RadioGroup.tsx +45 -45
  44. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  45. package/src/components/HookForm/SingleSelect.tsx +46 -46
  46. package/src/components/HookForm/TextField.tsx +40 -40
  47. package/src/components/HookForm/TimePicker.tsx +40 -40
  48. package/src/components/HookForm/index.ts +23 -23
  49. package/src/components/IconButtons/IconButtons.tsx +137 -137
  50. package/src/components/IconButtons/Icons.tsx +268 -268
  51. package/src/components/IconButtons/assets/edit.svg +4 -4
  52. package/src/components/IconButtons/assets/eye.svg +6 -6
  53. package/src/components/IconButtons/assets/trash.svg +7 -7
  54. package/src/components/IconButtons/index.tsx +8 -8
  55. package/src/components/IconLabel.tsx +37 -37
  56. package/src/components/Image/Image.tsx +43 -43
  57. package/src/components/Image/index.tsx +1 -1
  58. package/src/components/ImageUpload.tsx +98 -98
  59. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  60. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  61. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  62. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  63. package/src/components/Input/DatePicker.tsx +69 -69
  64. package/src/components/Input/DateRangePicker.tsx +131 -131
  65. package/src/components/Input/DateTimePicker.tsx +75 -75
  66. package/src/components/Input/FormLabel.tsx +21 -21
  67. package/src/components/Input/MultiCheckbox.tsx +64 -64
  68. package/src/components/Input/MultiSelect.tsx +148 -148
  69. package/src/components/Input/RadioGroup.tsx +104 -104
  70. package/src/components/Input/SingleCheckbox.tsx +78 -78
  71. package/src/components/Input/SingleSelect.tsx +104 -104
  72. package/src/components/Input/TextField.tsx +46 -46
  73. package/src/components/Input/TimePicker.tsx +70 -70
  74. package/src/components/Input/index.ts +26 -26
  75. package/src/components/Input/types.ts +3 -3
  76. package/src/components/JsonPreview.tsx +7 -7
  77. package/src/components/LabelValue.tsx +21 -21
  78. package/src/components/Layout/ChangePassword.tsx +49 -49
  79. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  80. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  81. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  82. package/src/components/Layout/Header/Notification.tsx +13 -13
  83. package/src/components/Layout/Header/UserBox.tsx +81 -81
  84. package/src/components/Layout/Header/applications.ts +91 -91
  85. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  86. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  87. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  88. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  89. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  90. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  91. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  92. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  93. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  94. package/src/components/Layout/Header/assets/index.ts +33 -33
  95. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  96. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  97. package/src/components/Layout/Header/assets/payx.svg +19 -19
  98. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  99. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  100. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  101. package/src/components/Layout/Header/icons.tsx +57 -57
  102. package/src/components/Layout/Header/index.tsx +1 -1
  103. package/src/components/Layout/Header/styles.tsx +124 -124
  104. package/src/components/Layout/{Header → Tickets}/HelpWidget/HelpWidget.tsx +273 -273
  105. package/src/components/Layout/{Header → Tickets}/HelpWidget/styles.tsx +94 -94
  106. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  107. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  108. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  109. package/src/components/Layout/Tickets/index.tsx +1 -1
  110. package/src/components/Layout/Tickets/services.ts +11 -11
  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 +80 -80
  116. package/src/components/MediaRow/MediaRow.tsx +69 -69
  117. package/src/components/MediaRow/index.tsx +1 -1
  118. package/src/components/ModalButtons/DialogButton.tsx +93 -93
  119. package/src/components/ModalButtons/DrawerButton.tsx +85 -85
  120. package/src/components/ModalButtons/index.tsx +4 -4
  121. package/src/components/NoDataIllustration.tsx +32 -32
  122. package/src/components/PageContent.tsx +17 -17
  123. package/src/components/PageHeader.tsx +55 -55
  124. package/src/components/PageNotFound.tsx +26 -26
  125. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  126. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  127. package/src/components/PopupConfirm/index.tsx +1 -1
  128. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  129. package/src/components/Row.tsx +24 -24
  130. package/src/components/SearchBar.tsx +60 -60
  131. package/src/components/SideMenuHeader.tsx +29 -29
  132. package/src/components/SideNav.tsx +168 -168
  133. package/src/components/Spinner.tsx +18 -18
  134. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  135. package/src/components/StepsHeader/index.tsx +1 -1
  136. package/src/components/StyledTableContainer.tsx +33 -33
  137. package/src/components/SwitchButton.tsx +41 -41
  138. package/src/components/Table.tsx +42 -42
  139. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  140. package/src/components/TableComponent/Icons/index.tsx +50 -50
  141. package/src/components/TableComponent/ReactTable.tsx +293 -293
  142. package/src/components/TableComponent/RenderTableBody.tsx +66 -66
  143. package/src/components/TableComponent/Table.tsx +200 -200
  144. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  145. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  146. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  147. package/src/components/TableComponent/index.tsx +1 -1
  148. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  149. package/src/components/TableComponent/styles.tsx +170 -170
  150. package/src/components/TableComponent/types.ts +57 -57
  151. package/src/components/Tabs/Tabs.tsx +52 -52
  152. package/src/components/Tabs/TabsContainer.tsx +50 -50
  153. package/src/components/Tabs/index.tsx +1 -1
  154. package/src/components/Tabs/styles.tsx +55 -55
  155. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  156. package/src/components/ToastContainer/index.tsx +1 -1
  157. package/src/components/UploadButton/UploadButton.tsx +126 -126
  158. package/src/components/UploadButton/index.tsx +1 -1
  159. package/src/components/UploadButton/types.ts +19 -19
  160. package/src/components/UploadDocument.tsx +108 -108
  161. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  162. package/src/components/UploadFileDialog/index.tsx +1 -1
  163. package/src/components/index.ts +87 -84
  164. package/src/config/axios.ts +73 -73
  165. package/src/config/axiosEvaluator.ts +53 -53
  166. package/src/config/axiosXTenant.ts +57 -57
  167. package/src/constants/UIConstants.ts +97 -97
  168. package/src/constants/formValidations.ts +6 -6
  169. package/src/constants/index.ts +5 -5
  170. package/src/constants/isDevelopment.ts +3 -3
  171. package/src/constants/permissions.ts +67 -67
  172. package/src/constants/validateMessages.ts +12 -12
  173. package/src/contexts/LoginFormProvider.tsx +39 -39
  174. package/src/contexts/Providers.tsx +71 -71
  175. package/src/contexts/PublicProviders.tsx +30 -30
  176. package/src/contexts/QueryClientProvider.tsx +22 -22
  177. package/src/hooks/index.ts +3 -3
  178. package/src/hooks/useAuth.ts +96 -96
  179. package/src/hooks/useFetch.ts +53 -53
  180. package/src/hooks/useRouter.ts +31 -31
  181. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  182. package/src/layouts/Components/icons/index.tsx +403 -403
  183. package/src/layouts/Components/styles.tsx +60 -60
  184. package/src/layouts/ComponentsLayout.tsx +3 -3
  185. package/src/permissions/PageWithPermission.tsx +18 -18
  186. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  187. package/src/permissions/ValidateAccess.tsx +18 -18
  188. package/src/permissions/index.ts +2 -2
  189. package/src/react-app-env.d.ts +1 -1
  190. package/src/shared-state/AssetsStore.ts +15 -15
  191. package/src/shared-state/PermissionsStore.ts +352 -352
  192. package/src/shared-state/UserStore.ts +13 -13
  193. package/src/shared-state/index.ts +4 -4
  194. package/src/theme/App.less +3 -3
  195. package/src/theme/MuiThemeProvider.tsx +13 -13
  196. package/src/theme/customCssBaseline.ts +78 -78
  197. package/src/theme/index.css +75 -75
  198. package/src/theme/muiTheme.ts +560 -560
  199. package/src/theme/theme.d.ts +75 -75
  200. package/src/utils/alphabet.ts +23 -23
  201. package/src/utils/arrayPadEnd.ts +3 -3
  202. package/src/utils/formatCurrency.ts +9 -9
  203. package/src/utils/getUrlParams.ts +5 -5
  204. package/src/utils/index.ts +8 -8
  205. package/src/utils/logout.ts +24 -24
  206. package/src/utils/ordinalSuffixOf.ts +14 -14
  207. package/src/utils/romanize.ts +40 -40
  208. package/src/utils/withLocalization.tsx +11 -11
  209. package/src/utils/withRouteWrapper.tsx +25 -25
  210. package/src/utils/withSuspense.tsx +6 -6
  211. package/styled-components.tsx +60 -60
  212. package/tsconfig.json +21 -21
  213. package/src/components/Layout/Header/assets/commuteX.png +0 -0
@@ -1,67 +1,67 @@
1
- export interface IPermission {
2
- can_create_admission: boolean
3
- can_create_role: boolean
4
- can_create_user: boolean
5
- can_delete_admission: boolean
6
- can_delete_role: boolean
7
- can_delete_user: boolean
8
- can_edit_admission: boolean
9
- can_edit_role: boolean
10
- can_edit_user: boolean
11
- can_manage_admissions: boolean
12
- can_manage_roles: boolean
13
- can_manage_users: boolean
14
- can_view_admissions: boolean
15
- can_view_roles: boolean
16
- can_view_users: boolean
17
- can_view_students: boolean
18
- can_view_exams: boolean
19
- can_view_classrooms: boolean
20
- can_view_clubs: boolean
21
- can_view_events: boolean
22
- can_view_students_feed: boolean
23
- can_print_application_form: boolean
24
- can_pay_tution_fee: boolean
25
- can_allot_tution_fee: boolean
26
- can_manage_scholarships: boolean
27
- can_create_scholarship: boolean
28
- can_edit_scholarship: boolean
29
- can_delete_scholarship: boolean
30
- can_manage_exams: boolean
31
- can_create_exam: boolean
32
- can_create_exam_timetable: boolean
33
- }
34
-
35
- export const defaultPermissions = {
36
- can_create_admission: false,
37
- can_create_role: false,
38
- can_create_user: false,
39
- can_delete_admission: false,
40
- can_delete_role: false,
41
- can_delete_user: false,
42
- can_edit_admission: false,
43
- can_edit_role: false,
44
- can_edit_user: false,
45
- can_manage_admissions: false,
46
- can_manage_roles: false,
47
- can_manage_users: false,
48
- can_view_admissions: false,
49
- can_view_roles: false,
50
- can_view_users: false,
51
- can_view_students: false,
52
- can_view_exams: false,
53
- can_view_classrooms: false,
54
- can_view_clubs: false,
55
- can_view_events: false,
56
- can_view_students_feed: false,
57
- can_print_application_form: false,
58
- can_pay_tution_fee: false,
59
- can_allot_tution_fee: false,
60
- can_manage_scholarships: false,
61
- can_create_scholarship: false,
62
- can_edit_scholarship: false,
63
- can_delete_scholarship: false,
64
- can_manage_exams: false,
65
- can_create_exam: false,
66
- can_create_exam_timetable: false,
67
- }
1
+ export interface IPermission {
2
+ can_create_admission: boolean
3
+ can_create_role: boolean
4
+ can_create_user: boolean
5
+ can_delete_admission: boolean
6
+ can_delete_role: boolean
7
+ can_delete_user: boolean
8
+ can_edit_admission: boolean
9
+ can_edit_role: boolean
10
+ can_edit_user: boolean
11
+ can_manage_admissions: boolean
12
+ can_manage_roles: boolean
13
+ can_manage_users: boolean
14
+ can_view_admissions: boolean
15
+ can_view_roles: boolean
16
+ can_view_users: boolean
17
+ can_view_students: boolean
18
+ can_view_exams: boolean
19
+ can_view_classrooms: boolean
20
+ can_view_clubs: boolean
21
+ can_view_events: boolean
22
+ can_view_students_feed: boolean
23
+ can_print_application_form: boolean
24
+ can_pay_tution_fee: boolean
25
+ can_allot_tution_fee: boolean
26
+ can_manage_scholarships: boolean
27
+ can_create_scholarship: boolean
28
+ can_edit_scholarship: boolean
29
+ can_delete_scholarship: boolean
30
+ can_manage_exams: boolean
31
+ can_create_exam: boolean
32
+ can_create_exam_timetable: boolean
33
+ }
34
+
35
+ export const defaultPermissions = {
36
+ can_create_admission: false,
37
+ can_create_role: false,
38
+ can_create_user: false,
39
+ can_delete_admission: false,
40
+ can_delete_role: false,
41
+ can_delete_user: false,
42
+ can_edit_admission: false,
43
+ can_edit_role: false,
44
+ can_edit_user: false,
45
+ can_manage_admissions: false,
46
+ can_manage_roles: false,
47
+ can_manage_users: false,
48
+ can_view_admissions: false,
49
+ can_view_roles: false,
50
+ can_view_users: false,
51
+ can_view_students: false,
52
+ can_view_exams: false,
53
+ can_view_classrooms: false,
54
+ can_view_clubs: false,
55
+ can_view_events: false,
56
+ can_view_students_feed: false,
57
+ can_print_application_form: false,
58
+ can_pay_tution_fee: false,
59
+ can_allot_tution_fee: false,
60
+ can_manage_scholarships: false,
61
+ can_create_scholarship: false,
62
+ can_edit_scholarship: false,
63
+ can_delete_scholarship: false,
64
+ can_manage_exams: false,
65
+ can_create_exam: false,
66
+ can_create_exam_timetable: false,
67
+ }
@@ -1,12 +1,12 @@
1
- // Validation messages for ant design forms
2
-
3
- export const validateMessages = {
4
- required: '${label} is required!',
5
- types: {
6
- email: '${label} is not validate email!',
7
- number: '${label} is not a validate number!',
8
- },
9
- number: {
10
- range: '${label} must be between ${min} and ${max}',
11
- },
12
- }
1
+ // Validation messages for ant design forms
2
+
3
+ export const validateMessages = {
4
+ required: '${label} is required!',
5
+ types: {
6
+ email: '${label} is not validate email!',
7
+ number: '${label} is not a validate number!',
8
+ },
9
+ number: {
10
+ range: '${label} must be between ${min} and ${max}',
11
+ },
12
+ }
@@ -1,39 +1,39 @@
1
- import { createContext, useContext } from 'react'
2
- import { LoginForm } from '../components'
3
- import { useModal } from '../components/DrawerWrapper/DrawerWrapper'
4
-
5
- const LoginContext = createContext<{
6
- openLoginForm: (loginUrl: string) => void
7
- }>({
8
- openLoginForm: (loginUrl: string) => {},
9
- })
10
-
11
- export default function LoginFormProvider({ children }) {
12
- const modal = useModal()
13
-
14
- const onLogin = (loginUrl: string) => {
15
- modal({
16
- title: 'Developer Login',
17
- content({ close }) {
18
- return <LoginForm loginUrl={loginUrl} />
19
- },
20
- })
21
- }
22
-
23
- return (
24
- <LoginContext.Provider
25
- value={{
26
- openLoginForm: onLogin,
27
- }}
28
- >
29
- {children}
30
- </LoginContext.Provider>
31
- )
32
- }
33
-
34
- export const useLoginForm = () => {
35
- const context = useContext(LoginContext)
36
- return {
37
- openLoginForm: context.openLoginForm,
38
- }
39
- }
1
+ import { createContext, useContext } from 'react'
2
+ import { LoginForm } from '../components'
3
+ import { useModal } from '../components/DrawerWrapper/DrawerWrapper'
4
+
5
+ const LoginContext = createContext<{
6
+ openLoginForm: (loginUrl: string) => void
7
+ }>({
8
+ openLoginForm: (loginUrl: string) => {},
9
+ })
10
+
11
+ export default function LoginFormProvider({ children }) {
12
+ const modal = useModal()
13
+
14
+ const onLogin = (loginUrl: string) => {
15
+ modal({
16
+ title: 'Developer Login',
17
+ content({ close }) {
18
+ return <LoginForm loginUrl={loginUrl} />
19
+ },
20
+ })
21
+ }
22
+
23
+ return (
24
+ <LoginContext.Provider
25
+ value={{
26
+ openLoginForm: onLogin,
27
+ }}
28
+ >
29
+ {children}
30
+ </LoginContext.Provider>
31
+ )
32
+ }
33
+
34
+ export const useLoginForm = () => {
35
+ const context = useContext(LoginContext)
36
+ return {
37
+ openLoginForm: context.openLoginForm,
38
+ }
39
+ }
@@ -1,71 +1,71 @@
1
- import { CssBaseline } from '@mui/material'
2
- import { BrowserRouter } from 'react-router-dom'
3
- import ConfirmContextProvider from '../components/PopupConfirm/ConfirmContextProvider'
4
- import MuiThemeProvider from '../theme/MuiThemeProvider'
5
- import QueryClientProvider from './QueryClientProvider'
6
-
7
- import Cookies from 'js-cookie'
8
- import { ReactNode, useEffect, useState } from 'react'
9
- import { ToastContainer } from '../components'
10
- import DialogProvider from '../components/DrawerWrapper/DrawerWrapper'
11
- import { isDevelopment } from '../constants'
12
- import LoginFormProvider from './LoginFormProvider'
13
-
14
- export const campxTenantKey = Cookies.get('campx_tenant')
15
- export const urlTenantKey = window.location.pathname.split('/')[1]
16
-
17
- export default function Providers({ children }: { children: ReactNode }) {
18
- const [isInvalid, setIsInvalid] = useState(false)
19
-
20
- useEffect(() => {
21
- if (!urlTenantKey && campxTenantKey) {
22
- return window.location.replace(
23
- window.location.origin + `/${campxTenantKey}`,
24
- )
25
- }
26
-
27
- if (!urlTenantKey) {
28
- setIsInvalid(true)
29
- }
30
- }, [])
31
-
32
- return (
33
- <BrowserRouter basename={urlTenantKey}>
34
- <QueryClientProvider>
35
- <MuiThemeProvider>
36
- <ConfirmContextProvider>
37
- <DialogProvider>
38
- <LoginFormProvider>
39
- {/* {isInvalid ? <InvalidClientKey /> : children} */}
40
- {children}
41
- <CssBaseline />
42
- </LoginFormProvider>
43
- <ToastContainer />
44
- </DialogProvider>
45
- </ConfirmContextProvider>
46
- </MuiThemeProvider>
47
- </QueryClientProvider>
48
- </BrowserRouter>
49
- )
50
- }
51
-
52
- const InvalidClientKey = () => {
53
- return (
54
- <div
55
- style={{
56
- height: '95vh',
57
- width: '95vw',
58
- display: 'grid',
59
- placeItems: 'center',
60
- fontFamily: 'sans-serif',
61
- }}
62
- >
63
- <h1>Invalid Tenant Key</h1>
64
- {!isDevelopment && (
65
- <a href="https://id.campx.in">
66
- <p style={{ textDecoration: 'underline' }}>Login to continue</p>
67
- </a>
68
- )}
69
- </div>
70
- )
71
- }
1
+ import { CssBaseline } from '@mui/material'
2
+ import { BrowserRouter } from 'react-router-dom'
3
+ import ConfirmContextProvider from '../components/PopupConfirm/ConfirmContextProvider'
4
+ import MuiThemeProvider from '../theme/MuiThemeProvider'
5
+ import QueryClientProvider from './QueryClientProvider'
6
+
7
+ import Cookies from 'js-cookie'
8
+ import { ReactNode, useEffect, useState } from 'react'
9
+ import { ToastContainer } from '../components'
10
+ import DialogProvider from '../components/DrawerWrapper/DrawerWrapper'
11
+ import { isDevelopment } from '../constants'
12
+ import LoginFormProvider from './LoginFormProvider'
13
+
14
+ export const campxTenantKey = Cookies.get('campx_tenant')
15
+ export const urlTenantKey = window.location.pathname.split('/')[1]
16
+
17
+ export default function Providers({ children }: { children: ReactNode }) {
18
+ const [isInvalid, setIsInvalid] = useState(false)
19
+
20
+ useEffect(() => {
21
+ if (!urlTenantKey && campxTenantKey) {
22
+ return window.location.replace(
23
+ window.location.origin + `/${campxTenantKey}`,
24
+ )
25
+ }
26
+
27
+ if (!urlTenantKey) {
28
+ setIsInvalid(true)
29
+ }
30
+ }, [])
31
+
32
+ return (
33
+ <BrowserRouter basename={urlTenantKey}>
34
+ <QueryClientProvider>
35
+ <MuiThemeProvider>
36
+ <ConfirmContextProvider>
37
+ <DialogProvider>
38
+ <LoginFormProvider>
39
+ {/* {isInvalid ? <InvalidClientKey /> : children} */}
40
+ {children}
41
+ <CssBaseline />
42
+ </LoginFormProvider>
43
+ <ToastContainer />
44
+ </DialogProvider>
45
+ </ConfirmContextProvider>
46
+ </MuiThemeProvider>
47
+ </QueryClientProvider>
48
+ </BrowserRouter>
49
+ )
50
+ }
51
+
52
+ const InvalidClientKey = () => {
53
+ return (
54
+ <div
55
+ style={{
56
+ height: '95vh',
57
+ width: '95vw',
58
+ display: 'grid',
59
+ placeItems: 'center',
60
+ fontFamily: 'sans-serif',
61
+ }}
62
+ >
63
+ <h1>Invalid Tenant Key</h1>
64
+ {!isDevelopment && (
65
+ <a href="https://id.campx.in">
66
+ <p style={{ textDecoration: 'underline' }}>Login to continue</p>
67
+ </a>
68
+ )}
69
+ </div>
70
+ )
71
+ }
@@ -1,30 +1,30 @@
1
- import { CssBaseline } from '@mui/material'
2
- import { BrowserRouter } from 'react-router-dom'
3
- import ConfirmContextProvider from '../components/PopupConfirm/ConfirmContextProvider'
4
- import MuiThemeProvider from '../theme/MuiThemeProvider'
5
- import QueryClientProvider from './QueryClientProvider'
6
-
7
- import { ReactNode } from 'react'
8
- import { ToastContainer } from '../components'
9
- import DialogProvider from '../components/DrawerWrapper/DrawerWrapper'
10
-
11
- // export const campxTenantKey = Cookies.get('campx_tenant')
12
- // export const urlTenantKey = window.location.pathname.split('/')[1]
13
-
14
- export default function PublicProviders({ children }: { children: ReactNode }) {
15
- return (
16
- <BrowserRouter>
17
- <QueryClientProvider>
18
- <MuiThemeProvider>
19
- <ConfirmContextProvider>
20
- <DialogProvider>
21
- {children}
22
- <CssBaseline />
23
- <ToastContainer />
24
- </DialogProvider>
25
- </ConfirmContextProvider>
26
- </MuiThemeProvider>
27
- </QueryClientProvider>
28
- </BrowserRouter>
29
- )
30
- }
1
+ import { CssBaseline } from '@mui/material'
2
+ import { BrowserRouter } from 'react-router-dom'
3
+ import ConfirmContextProvider from '../components/PopupConfirm/ConfirmContextProvider'
4
+ import MuiThemeProvider from '../theme/MuiThemeProvider'
5
+ import QueryClientProvider from './QueryClientProvider'
6
+
7
+ import { ReactNode } from 'react'
8
+ import { ToastContainer } from '../components'
9
+ import DialogProvider from '../components/DrawerWrapper/DrawerWrapper'
10
+
11
+ // export const campxTenantKey = Cookies.get('campx_tenant')
12
+ // export const urlTenantKey = window.location.pathname.split('/')[1]
13
+
14
+ export default function PublicProviders({ children }: { children: ReactNode }) {
15
+ return (
16
+ <BrowserRouter>
17
+ <QueryClientProvider>
18
+ <MuiThemeProvider>
19
+ <ConfirmContextProvider>
20
+ <DialogProvider>
21
+ {children}
22
+ <CssBaseline />
23
+ <ToastContainer />
24
+ </DialogProvider>
25
+ </ConfirmContextProvider>
26
+ </MuiThemeProvider>
27
+ </QueryClientProvider>
28
+ </BrowserRouter>
29
+ )
30
+ }
@@ -1,22 +1,22 @@
1
- import {
2
- QueryClient,
3
- QueryClientProvider as ReactQueryClientProvider,
4
- } from 'react-query'
5
-
6
- export const queryClient = new QueryClient({
7
- defaultOptions: {
8
- queries: {
9
- refetchOnWindowFocus: false,
10
- retry: false,
11
- useErrorBoundary: true,
12
- },
13
- },
14
- })
15
-
16
- export default function QueryClientProvider({ children }) {
17
- return (
18
- <ReactQueryClientProvider client={queryClient}>
19
- {children}
20
- </ReactQueryClientProvider>
21
- )
22
- }
1
+ import {
2
+ QueryClient,
3
+ QueryClientProvider as ReactQueryClientProvider,
4
+ } from 'react-query'
5
+
6
+ export const queryClient = new QueryClient({
7
+ defaultOptions: {
8
+ queries: {
9
+ refetchOnWindowFocus: false,
10
+ retry: false,
11
+ useErrorBoundary: true,
12
+ },
13
+ },
14
+ })
15
+
16
+ export default function QueryClientProvider({ children }) {
17
+ return (
18
+ <ReactQueryClientProvider client={queryClient}>
19
+ {children}
20
+ </ReactQueryClientProvider>
21
+ )
22
+ }
@@ -1,3 +1,3 @@
1
- export { default as useFetch } from './useFetch'
2
- export * from './useRouter'
3
- export { default as useAuth } from './useAuth'
1
+ export { default as useFetch } from './useFetch'
2
+ export * from './useRouter'
3
+ export { default as useAuth } from './useAuth'