@campxdev/shared 1.1.4 → 1.1.5

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 (215) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +17 -17
  3. package/package.json +82 -82
  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 +28 -28
  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 +164 -164
  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.tsx +194 -194
  24. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  25. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  26. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  27. package/src/components/ErrorBoundary/index.tsx +1 -1
  28. package/src/components/ErrorBox.tsx +42 -42
  29. package/src/components/FloatingContainer.tsx +33 -33
  30. package/src/components/Form/Form.tsx +156 -156
  31. package/src/components/Form/RenderForm.tsx +188 -188
  32. package/src/components/FullCalendar/Actions.tsx +162 -162
  33. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  34. package/src/components/FullScreenLoader.tsx +19 -19
  35. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  36. package/src/components/HookForm/DatePicker.tsx +65 -65
  37. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  38. package/src/components/HookForm/FormLabel.tsx +14 -14
  39. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  40. package/src/components/HookForm/MultiSelect.tsx +100 -100
  41. package/src/components/HookForm/RadioGroup.tsx +106 -106
  42. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  43. package/src/components/HookForm/SingleSelect.tsx +94 -94
  44. package/src/components/HookForm/TextField.tsx +74 -74
  45. package/src/components/HookForm/TimePicker.tsx +82 -82
  46. package/src/components/HookForm/index.ts +23 -23
  47. package/src/components/IconButtons/IconButtons.tsx +137 -137
  48. package/src/components/IconButtons/Icons.tsx +268 -268
  49. package/src/components/IconButtons/assets/edit.svg +4 -4
  50. package/src/components/IconButtons/assets/eye.svg +6 -6
  51. package/src/components/IconButtons/assets/trash.svg +7 -7
  52. package/src/components/IconButtons/index.tsx +8 -8
  53. package/src/components/IconLabel.tsx +37 -37
  54. package/src/components/Image/Image.tsx +43 -43
  55. package/src/components/Image/index.tsx +1 -1
  56. package/src/components/ImageUpload.tsx +98 -98
  57. package/src/components/Input/AutoCompleteSearch.tsx +113 -113
  58. package/src/components/Input/DatePicker.tsx +60 -60
  59. package/src/components/Input/DateRangePicker.tsx +131 -131
  60. package/src/components/Input/DateTimePicker.tsx +70 -70
  61. package/src/components/Input/FormLabel.tsx +14 -14
  62. package/src/components/Input/MultiCheckbox.tsx +79 -79
  63. package/src/components/Input/MultiSelect.tsx +52 -52
  64. package/src/components/Input/RadioGroup.tsx +61 -61
  65. package/src/components/Input/SingleCheckbox.tsx +23 -23
  66. package/src/components/Input/SingleSelect.tsx +126 -126
  67. package/src/components/Input/TextField.tsx +50 -50
  68. package/src/components/Input/TimePicker.tsx +82 -82
  69. package/src/components/Input/index.ts +26 -26
  70. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  71. package/src/components/JsonPreview/index.tsx +1 -1
  72. package/src/components/LabelValue/LabelValue.tsx +21 -21
  73. package/src/components/LabelValue/index.tsx +1 -1
  74. package/src/components/Layout/ChangePassword.tsx +49 -49
  75. package/src/components/Layout/Header/AppHeader.tsx +124 -124
  76. package/src/components/Layout/Header/AppsMenu.tsx +92 -92
  77. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  78. package/src/components/Layout/Header/HelpWidget/HelpWidget.tsx +298 -298
  79. package/src/components/Layout/Header/HelpWidget/styles.tsx +94 -94
  80. package/src/components/Layout/Header/Notification.tsx +13 -13
  81. package/src/components/Layout/Header/UserBox.tsx +91 -91
  82. package/src/components/Layout/Header/applications.ts +90 -90
  83. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  84. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  85. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  86. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  87. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  88. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  89. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  90. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  91. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  92. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  93. package/src/components/Layout/Header/assets/index.ts +33 -33
  94. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  95. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  96. package/src/components/Layout/Header/assets/payx.svg +19 -19
  97. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  98. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  99. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  100. package/src/components/Layout/Header/icons.tsx +57 -57
  101. package/src/components/Layout/Header/index.tsx +1 -1
  102. package/src/components/Layout/Header/styles.tsx +98 -98
  103. package/src/components/Layout/Tickets/MyTickets.tsx +74 -74
  104. package/src/components/Layout/Tickets/Services.tsx +6 -6
  105. package/src/components/Layout/Tickets/TicketDetails.tsx +66 -66
  106. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  107. package/src/components/Layout/Tickets/index.tsx +1 -1
  108. package/src/components/Layout/Tickets/styles.tsx +136 -136
  109. package/src/components/LayoutWrapper.tsx +25 -25
  110. package/src/components/LinearProgress.tsx +19 -19
  111. package/src/components/ListItemButton.tsx +95 -95
  112. package/src/components/LoginForm.tsx +105 -105
  113. package/src/components/MediaRow/MediaRow.tsx +69 -69
  114. package/src/components/MediaRow/index.tsx +1 -1
  115. package/src/components/MenuButton.tsx +103 -103
  116. package/src/components/ModalButtons/DialogButton.tsx +88 -88
  117. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  118. package/src/components/ModalButtons/index.tsx +4 -4
  119. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  120. package/src/components/NoDataIllustration/index.tsx +1 -1
  121. package/src/components/PageContent.tsx +17 -17
  122. package/src/components/PageHeader.tsx +52 -52
  123. package/src/components/PageNotFound.tsx +26 -26
  124. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  125. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  126. package/src/components/PopupConfirm/index.tsx +1 -1
  127. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  128. package/src/components/Router.tsx +7 -7
  129. package/src/components/Row/Row.tsx +24 -24
  130. package/src/components/Row/index.tsx +1 -1
  131. package/src/components/SearchBar/SearchBar.tsx +53 -53
  132. package/src/components/SearchBar/index.tsx +1 -1
  133. package/src/components/SideMenuHeader.tsx +29 -29
  134. package/src/components/SideNav.tsx +168 -168
  135. package/src/components/Spinner.tsx +18 -18
  136. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  137. package/src/components/StepsHeader/index.tsx +1 -1
  138. package/src/components/StyledTableContainer.tsx +33 -33
  139. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  140. package/src/components/SwitchButton/index.tsx +1 -1
  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 +293 -293
  145. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  146. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  147. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  148. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  149. package/src/components/TableComponent/index.tsx +226 -226
  150. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  151. package/src/components/TableComponent/styles.tsx +173 -173
  152. package/src/components/TableComponent/types.ts +57 -57
  153. package/src/components/Tabs/Tabs.tsx +52 -52
  154. package/src/components/Tabs/TabsContainer.tsx +50 -50
  155. package/src/components/Tabs/index.tsx +1 -1
  156. package/src/components/Tabs/styles.tsx +55 -55
  157. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  158. package/src/components/ToastContainer/index.tsx +1 -1
  159. package/src/components/UploadButton/UploadButton.tsx +126 -126
  160. package/src/components/UploadButton/index.tsx +1 -1
  161. package/src/components/UploadButton/types.ts +19 -19
  162. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  163. package/src/components/UploadDocument/index.tsx +1 -1
  164. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  165. package/src/components/UploadFileDialog/index.tsx +1 -1
  166. package/src/components/index.ts +86 -86
  167. package/src/config/axios.ts +74 -74
  168. package/src/config/axiosXTenant.ts +57 -57
  169. package/src/constants/UIConstants.ts +97 -97
  170. package/src/constants/formValidations.ts +6 -6
  171. package/src/constants/index.ts +5 -5
  172. package/src/constants/isDevelopment.ts +3 -3
  173. package/src/constants/permissions.ts +67 -67
  174. package/src/constants/validateMessages.ts +12 -12
  175. package/src/contexts/LoginFormProvider.tsx +39 -39
  176. package/src/contexts/Providers.tsx +60 -60
  177. package/src/contexts/PublicProviders.tsx +30 -30
  178. package/src/contexts/QueryClientProvider.tsx +22 -22
  179. package/src/hooks/index.ts +3 -3
  180. package/src/hooks/useAppInit.ts +33 -33
  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 +60 -60
  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 +490 -490
  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 +8 -8
  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/withLocalization.tsx +11 -11
  212. package/src/utils/withRouteWrapper.tsx +25 -25
  213. package/src/utils/withSuspense.tsx +6 -6
  214. package/styled-components.tsx +60 -60
  215. package/tsconfig.json +21 -21
@@ -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,60 +1,60 @@
1
- import MuiThemeProvider from '../theme/MuiThemeProvider'
2
- import ConfirmContextProvider from '../components/PopupConfirm/ConfirmContextProvider'
3
- import { CssBaseline } from '@mui/material'
4
- import { BrowserRouter } from 'react-router-dom'
5
- import QueryClientProvider from './QueryClientProvider'
6
-
7
- import DialogProvider from '../components/DrawerWrapper/DrawerWrapper'
8
- import { ToastContainer } from '../components'
9
- import LoginFormProvider from './LoginFormProvider'
10
- import { ReactNode } from 'react'
11
- import { isDevelopment } from '../constants'
12
- import useAppInit from '../hooks/useAppInit'
13
- import Cookies from 'js-cookie'
14
-
15
- export const campxTenantKey = Cookies.get('campx_tenant')
16
- export const urlTenantKey = window.location.pathname.split('/')[1]
17
-
18
- export default function Providers({ children }: { children: ReactNode }) {
19
- const { isInvalid } = useAppInit()
20
-
21
- return (
22
- <BrowserRouter basename={isDevelopment ? 'campx_dev' : urlTenantKey}>
23
- <QueryClientProvider>
24
- <MuiThemeProvider>
25
- <ConfirmContextProvider>
26
- <DialogProvider>
27
- <LoginFormProvider>
28
- {/* {isInvalid ? <InvalidClientKey /> : children} */}
29
- {children}
30
- <CssBaseline />
31
- </LoginFormProvider>
32
- <ToastContainer />
33
- </DialogProvider>
34
- </ConfirmContextProvider>
35
- </MuiThemeProvider>
36
- </QueryClientProvider>
37
- </BrowserRouter>
38
- )
39
- }
40
-
41
- const InvalidClientKey = () => {
42
- return (
43
- <div
44
- style={{
45
- height: '95vh',
46
- width: '95vw',
47
- display: 'grid',
48
- placeItems: 'center',
49
- fontFamily: 'sans-serif',
50
- }}
51
- >
52
- <h1>Invalid Tenant Key</h1>
53
- {!isDevelopment && (
54
- <a href="https://id.campx.in">
55
- <p style={{ textDecoration: 'underline' }}>Login to continue</p>
56
- </a>
57
- )}
58
- </div>
59
- )
60
- }
1
+ import MuiThemeProvider from '../theme/MuiThemeProvider'
2
+ import ConfirmContextProvider from '../components/PopupConfirm/ConfirmContextProvider'
3
+ import { CssBaseline } from '@mui/material'
4
+ import { BrowserRouter } from 'react-router-dom'
5
+ import QueryClientProvider from './QueryClientProvider'
6
+
7
+ import DialogProvider from '../components/DrawerWrapper/DrawerWrapper'
8
+ import { ToastContainer } from '../components'
9
+ import LoginFormProvider from './LoginFormProvider'
10
+ import { ReactNode } from 'react'
11
+ import { isDevelopment } from '../constants'
12
+ import useAppInit from '../hooks/useAppInit'
13
+ import Cookies from 'js-cookie'
14
+
15
+ export const campxTenantKey = Cookies.get('campx_tenant')
16
+ export const urlTenantKey = window.location.pathname.split('/')[1]
17
+
18
+ export default function Providers({ children }: { children: ReactNode }) {
19
+ const { isInvalid } = useAppInit()
20
+
21
+ return (
22
+ <BrowserRouter basename={isDevelopment ? 'campx_dev' : urlTenantKey}>
23
+ <QueryClientProvider>
24
+ <MuiThemeProvider>
25
+ <ConfirmContextProvider>
26
+ <DialogProvider>
27
+ <LoginFormProvider>
28
+ {/* {isInvalid ? <InvalidClientKey /> : children} */}
29
+ {children}
30
+ <CssBaseline />
31
+ </LoginFormProvider>
32
+ <ToastContainer />
33
+ </DialogProvider>
34
+ </ConfirmContextProvider>
35
+ </MuiThemeProvider>
36
+ </QueryClientProvider>
37
+ </BrowserRouter>
38
+ )
39
+ }
40
+
41
+ const InvalidClientKey = () => {
42
+ return (
43
+ <div
44
+ style={{
45
+ height: '95vh',
46
+ width: '95vw',
47
+ display: 'grid',
48
+ placeItems: 'center',
49
+ fontFamily: 'sans-serif',
50
+ }}
51
+ >
52
+ <h1>Invalid Tenant Key</h1>
53
+ {!isDevelopment && (
54
+ <a href="https://id.campx.in">
55
+ <p style={{ textDecoration: 'underline' }}>Login to continue</p>
56
+ </a>
57
+ )}
58
+ </div>
59
+ )
60
+ }
@@ -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'
@@ -1,33 +1,33 @@
1
- import Cookies from 'js-cookie'
2
- import { useEffect, useRef, useState } from 'react'
3
- import { isDevelopment } from '../constants'
4
- import { campxTenantKey } from '../contexts/Providers'
5
-
6
- const urlTenantKey = window.location.pathname.split('/')[1]
7
-
8
- export default function useAppInit() {
9
- const [isInvalid, setIsInvalid] = useState(false)
10
-
11
- useEffect(() => {
12
- if (!isDevelopment) {
13
- if (!urlTenantKey && campxTenantKey) {
14
- return window.location.replace(
15
- window.location.origin + `/${campxTenantKey}`,
16
- )
17
- }
18
-
19
- if (!urlTenantKey) {
20
- setIsInvalid(true)
21
- }
22
- }
23
-
24
- if (window.location.pathname === '/' && isDevelopment) {
25
- Cookies.set('campx_tenant', 'campx_dev')
26
- window.location.href = window.location.origin + '/campx_dev'
27
- }
28
- }, [])
29
-
30
- return {
31
- isInvalid,
32
- }
33
- }
1
+ import Cookies from 'js-cookie'
2
+ import { useEffect, useRef, useState } from 'react'
3
+ import { isDevelopment } from '../constants'
4
+ import { campxTenantKey } from '../contexts/Providers'
5
+
6
+ const urlTenantKey = window.location.pathname.split('/')[1]
7
+
8
+ export default function useAppInit() {
9
+ const [isInvalid, setIsInvalid] = useState(false)
10
+
11
+ useEffect(() => {
12
+ if (!isDevelopment) {
13
+ if (!urlTenantKey && campxTenantKey) {
14
+ return window.location.replace(
15
+ window.location.origin + `/${campxTenantKey}`,
16
+ )
17
+ }
18
+
19
+ if (!urlTenantKey) {
20
+ setIsInvalid(true)
21
+ }
22
+ }
23
+
24
+ if (window.location.pathname === '/' && isDevelopment) {
25
+ Cookies.set('campx_tenant', 'campx_dev')
26
+ window.location.href = window.location.origin + '/campx_dev'
27
+ }
28
+ }, [])
29
+
30
+ return {
31
+ isInvalid,
32
+ }
33
+ }
@@ -1,96 +1,96 @@
1
- import { AxiosError } from 'axios'
2
- import { useEffect, useState } from 'react'
3
- import { toast } from 'react-toastify'
4
- import axios from '../config/axios'
5
- import { isDevelopment } from '../constants'
6
- import { useLoginForm } from '../contexts/LoginFormProvider'
7
- import { PermissionsStore, AssetsStore, UserStore } from '../shared-state'
8
-
9
- const url = window.location.origin
10
-
11
- type AuthParams = {
12
- permissionsEndpoint: string
13
- loginUrl?: string
14
- }
15
-
16
- type AuthResponse = {
17
- loading: boolean
18
- data: {
19
- user?: any
20
- roles?: any
21
- username?: any
22
- permissions?: any
23
- assets?: {
24
- logo: string
25
- logo_square: string
26
- }
27
- }
28
- }
29
-
30
- function useAuth({ permissionsEndpoint, loginUrl }: AuthParams): AuthResponse {
31
- const { openLoginForm } = useLoginForm()
32
- const [loading, setLoading] = useState<boolean>(false)
33
- const [data, setData] = useState(null)
34
-
35
- const appInit = async () => {
36
- setLoading(true)
37
- axios
38
- .get(permissionsEndpoint)
39
- .then((res) => {
40
- setLoading(false)
41
- setData(res.data)
42
- UserStore.update((s) => {
43
- s.username = res.data?.username
44
- s.user = res.data?.user
45
- s.roles = res.data?.roles
46
- })
47
-
48
- PermissionsStore.update((s) => {
49
- s.permissions = {
50
- ...res.data?.permissions,
51
- can_settings_view: 1,
52
- can_dashboard_view: 1,
53
- can_individual_pages_view: 1,
54
- } as any
55
- })
56
- AssetsStore.update((s) => {
57
- s.logo = res.data?.assets.logo
58
- s.logo_square = res.data?.assets.logo_square
59
- })
60
- })
61
- .catch((err: AxiosError) => {
62
- setLoading(false)
63
- if (isDevelopment) {
64
- openLoginForm(loginUrl)
65
- return
66
- } else {
67
- window.location.replace(`https://www.id.campx.in/?redirect_to=${url}`)
68
- }
69
- if (err.response.status !== 401) {
70
- if (err.response.status > 400 && err.response.status < 500) {
71
- window.location.replace(
72
- `https://www.id.campx.in/?redirect_to=${url}`,
73
- )
74
- } else {
75
- toast.error('Server Error')
76
- }
77
- }
78
- })
79
- }
80
-
81
- useEffect(() => {
82
- if (window.location.pathname === '/') {
83
- if (isDevelopment) {
84
- window.location.replace(window.location.origin + '/campx_dev')
85
- }
86
- }
87
- appInit()
88
- }, [])
89
-
90
- return {
91
- loading: loading || !data?.permissions,
92
- data,
93
- }
94
- }
95
-
96
- export default useAuth
1
+ import { AxiosError } from 'axios'
2
+ import { useEffect, useState } from 'react'
3
+ import { toast } from 'react-toastify'
4
+ import axios from '../config/axios'
5
+ import { isDevelopment } from '../constants'
6
+ import { useLoginForm } from '../contexts/LoginFormProvider'
7
+ import { PermissionsStore, AssetsStore, UserStore } from '../shared-state'
8
+
9
+ const url = window.location.origin
10
+
11
+ type AuthParams = {
12
+ permissionsEndpoint: string
13
+ loginUrl?: string
14
+ }
15
+
16
+ type AuthResponse = {
17
+ loading: boolean
18
+ data: {
19
+ user?: any
20
+ roles?: any
21
+ username?: any
22
+ permissions?: any
23
+ assets?: {
24
+ logo: string
25
+ logo_square: string
26
+ }
27
+ }
28
+ }
29
+
30
+ function useAuth({ permissionsEndpoint, loginUrl }: AuthParams): AuthResponse {
31
+ const { openLoginForm } = useLoginForm()
32
+ const [loading, setLoading] = useState<boolean>(false)
33
+ const [data, setData] = useState(null)
34
+
35
+ const appInit = async () => {
36
+ setLoading(true)
37
+ axios
38
+ .get(permissionsEndpoint)
39
+ .then((res) => {
40
+ setLoading(false)
41
+ setData(res.data)
42
+ UserStore.update((s) => {
43
+ s.username = res.data?.username
44
+ s.user = res.data?.user
45
+ s.roles = res.data?.roles
46
+ })
47
+
48
+ PermissionsStore.update((s) => {
49
+ s.permissions = {
50
+ ...res.data?.permissions,
51
+ can_settings_view: 1,
52
+ can_dashboard_view: 1,
53
+ can_individual_pages_view: 1,
54
+ } as any
55
+ })
56
+ AssetsStore.update((s) => {
57
+ s.logo = res.data?.assets.logo
58
+ s.logo_square = res.data?.assets.logo_square
59
+ })
60
+ })
61
+ .catch((err: AxiosError) => {
62
+ setLoading(false)
63
+ if (isDevelopment) {
64
+ openLoginForm(loginUrl)
65
+ return
66
+ } else {
67
+ window.location.replace(`https://www.id.campx.in/?redirect_to=${url}`)
68
+ }
69
+ if (err.response.status !== 401) {
70
+ if (err.response.status > 400 && err.response.status < 500) {
71
+ window.location.replace(
72
+ `https://www.id.campx.in/?redirect_to=${url}`,
73
+ )
74
+ } else {
75
+ toast.error('Server Error')
76
+ }
77
+ }
78
+ })
79
+ }
80
+
81
+ useEffect(() => {
82
+ if (window.location.pathname === '/') {
83
+ if (isDevelopment) {
84
+ window.location.replace(window.location.origin + '/campx_dev')
85
+ }
86
+ }
87
+ appInit()
88
+ }, [])
89
+
90
+ return {
91
+ loading: loading || !data?.permissions,
92
+ data,
93
+ }
94
+ }
95
+
96
+ export default useAuth