@campxdev/shared 0.6.18 → 0.6.19

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/.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 +16 -16
  6. package/package.json +93 -93
  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 +63 -63
  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 +93 -93
  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 +124 -124
  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/FreshDeskHelpButton.tsx +19 -19
  83. package/src/components/Layout/Header/Notification.tsx +13 -13
  84. package/src/components/Layout/Header/UserBox.tsx +70 -70
  85. package/src/components/Layout/Header/applications.ts +90 -90
  86. package/src/components/Layout/Header/assets/campx.svg +29 -29
  87. package/src/components/Layout/Header/assets/index.ts +29 -32
  88. package/src/components/Layout/Header/assets/newAssets/campx_square_small.svg +9 -9
  89. package/src/components/Layout/Header/assets/newAssets/commutex.svg +14 -14
  90. package/src/components/Layout/Header/assets/newAssets/commutexSmall.svg +11 -11
  91. package/src/components/Layout/Header/assets/newAssets/enroll.svg +14 -14
  92. package/src/components/Layout/Header/assets/newAssets/enrollx.svg +14 -14
  93. package/src/components/Layout/Header/assets/newAssets/exams_small.svg +12 -12
  94. package/src/components/Layout/Header/assets/newAssets/examsx.svg +14 -14
  95. package/src/components/Layout/Header/assets/newAssets/hostel_small.svg +13 -13
  96. package/src/components/Layout/Header/assets/newAssets/hostelx.svg +13 -13
  97. package/src/components/Layout/Header/assets/newAssets/libraryx.svg +12 -12
  98. package/src/components/Layout/Header/assets/newAssets/pay_small.svg +16 -16
  99. package/src/components/Layout/Header/assets/newAssets/payx.svg +19 -19
  100. package/src/components/Layout/Header/assets/newAssets/people_small.svg +9 -9
  101. package/src/components/Layout/Header/assets/newAssets/peoplex.svg +12 -12
  102. package/src/components/Layout/Header/assets/newAssets/squarex.svg +12 -12
  103. package/src/components/Layout/Header/assets/payxHeader.svg +21 -21
  104. package/src/components/Layout/Header/assets/peoplexHeader.svg +14 -14
  105. package/src/components/Layout/Header/icons.tsx +57 -57
  106. package/src/components/Layout/Header/index.tsx +1 -1
  107. package/src/components/Layout/Header/styles.tsx +98 -98
  108. package/src/components/LayoutWrapper.tsx +25 -25
  109. package/src/components/LinearProgress.tsx +19 -19
  110. package/src/components/ListItemButton.tsx +94 -94
  111. package/src/components/LoginForm.tsx +103 -103
  112. package/src/components/MediaRow/MediaRow.tsx +69 -69
  113. package/src/components/MediaRow/index.tsx +1 -1
  114. package/src/components/MenuButton.tsx +103 -103
  115. package/src/components/ModalButtons/DialogButton.tsx +88 -88
  116. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  117. package/src/components/ModalButtons/index.tsx +4 -4
  118. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  119. package/src/components/NoDataIllustration/index.tsx +1 -1
  120. package/src/components/PageContent.tsx +17 -17
  121. package/src/components/PageHeader.tsx +52 -52
  122. package/src/components/PageNotFound.tsx +26 -26
  123. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  124. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  125. package/src/components/PopupConfirm/index.tsx +1 -1
  126. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  127. package/src/components/Router.tsx +7 -7
  128. package/src/components/Row/Row.tsx +24 -24
  129. package/src/components/Row/index.tsx +1 -1
  130. package/src/components/SearchBar/SearchBar.tsx +53 -53
  131. package/src/components/SearchBar/index.tsx +1 -1
  132. package/src/components/SideMenuHeader.tsx +29 -29
  133. package/src/components/SideNav.tsx +168 -168
  134. package/src/components/Spinner.tsx +18 -18
  135. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  136. package/src/components/StepsHeader/index.tsx +1 -1
  137. package/src/components/StyledTableContainer.tsx +33 -33
  138. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  139. package/src/components/SwitchButton/index.tsx +1 -1
  140. package/src/components/Table.tsx +42 -42
  141. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  142. package/src/components/TableComponent/Icons/index.tsx +50 -50
  143. package/src/components/TableComponent/ReactTable.tsx +293 -293
  144. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  145. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  146. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  147. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  148. package/src/components/TableComponent/index.tsx +226 -226
  149. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  150. package/src/components/TableComponent/styles.tsx +173 -173
  151. package/src/components/TableComponent/types.ts +57 -57
  152. package/src/components/Tabs/Tabs.tsx +52 -52
  153. package/src/components/Tabs/TabsContainer.tsx +50 -50
  154. package/src/components/Tabs/index.tsx +1 -1
  155. package/src/components/Tabs/styles.tsx +55 -55
  156. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  157. package/src/components/ToastContainer/index.tsx +1 -1
  158. package/src/components/UploadButton/UploadButton.tsx +126 -126
  159. package/src/components/UploadButton/index.tsx +1 -1
  160. package/src/components/UploadButton/types.ts +19 -19
  161. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  162. package/src/components/UploadDocument/index.tsx +1 -1
  163. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  164. package/src/components/UploadFileDialog/index.tsx +1 -1
  165. package/src/components/index.ts +86 -86
  166. package/src/config/axios.ts +74 -74
  167. package/src/config/axiosXTenant.ts +57 -57
  168. package/src/constants/UIConstants.ts +97 -97
  169. package/src/constants/formValidations.ts +6 -6
  170. package/src/constants/index.ts +5 -5
  171. package/src/constants/isDevelopment.ts +3 -3
  172. package/src/constants/permissions.ts +67 -67
  173. package/src/constants/validateMessages.ts +12 -12
  174. package/src/contexts/LoginFormProvider.tsx +39 -39
  175. package/src/contexts/Providers.tsx +59 -59
  176. package/src/contexts/QueryClientProvider.tsx +22 -22
  177. package/src/hooks/index.ts +3 -3
  178. package/src/hooks/useAppInit.ts +33 -33
  179. package/src/hooks/useAuth.ts +91 -91
  180. package/src/hooks/useFetch.ts +53 -53
  181. package/src/hooks/useRouter.ts +31 -31
  182. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  183. package/src/layouts/Components/icons/index.tsx +403 -403
  184. package/src/layouts/Components/styles.tsx +60 -60
  185. package/src/layouts/ComponentsLayout.tsx +3 -3
  186. package/src/permissions/PageWithPermission.tsx +18 -18
  187. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  188. package/src/permissions/PermissionsStore.ts +352 -352
  189. package/src/permissions/ValidateAccess.tsx +18 -18
  190. package/src/permissions/index.ts +3 -3
  191. package/src/react-app-env.d.ts +1 -1
  192. package/src/shared-state/AssetsStore.ts +15 -15
  193. package/src/shared-state/UserStore.ts +13 -13
  194. package/src/shared-state/index.ts +3 -3
  195. package/src/theme/App.less +3 -3
  196. package/src/theme/MuiThemeProvider.tsx +13 -13
  197. package/src/theme/customCssBaseline.ts +78 -78
  198. package/src/theme/index.css +75 -75
  199. package/src/theme/muiTheme.ts +490 -490
  200. package/src/theme/theme.d.ts +75 -75
  201. package/src/utils/alphabet.ts +23 -23
  202. package/src/utils/arrayPadEnd.ts +3 -3
  203. package/src/utils/formatCurrency.ts +9 -9
  204. package/src/utils/getUrlParams.ts +5 -5
  205. package/src/utils/index.ts +8 -8
  206. package/src/utils/logout.ts +24 -24
  207. package/src/utils/ordinalSuffixOf.ts +14 -14
  208. package/src/utils/romanize.ts +40 -40
  209. package/src/utils/withLocalization.tsx +11 -11
  210. package/src/utils/withRouteWrapper.tsx +25 -25
  211. package/src/utils/withSuspense.tsx +6 -6
  212. package/styled-components.tsx +60 -60
  213. package/todo.md +20 -20
  214. package/tsconfig.json +21 -21
  215. package/src/components/Layout/Header/assets/newAssets/commuteX.png +0 -0
@@ -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: () => void
7
- }>({
8
- openLoginForm: () => {},
9
- })
10
-
11
- export default function LoginFormProvider({ children }) {
12
- const modal = useModal()
13
-
14
- const onLogin = () => {
15
- modal({
16
- title: 'Developer Login',
17
- content({ close }) {
18
- return <LoginForm />
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: () => void
7
+ }>({
8
+ openLoginForm: () => {},
9
+ })
10
+
11
+ export default function LoginFormProvider({ children }) {
12
+ const modal = useModal()
13
+
14
+ const onLogin = () => {
15
+ modal({
16
+ title: 'Developer Login',
17
+ content({ close }) {
18
+ return <LoginForm />
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,59 +1,59 @@
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
- <CssBaseline />
30
- </LoginFormProvider>
31
- <ToastContainer />
32
- </DialogProvider>
33
- </ConfirmContextProvider>
34
- </MuiThemeProvider>
35
- </QueryClientProvider>
36
- </BrowserRouter>
37
- )
38
- }
39
-
40
- const InvalidClientKey = () => {
41
- return (
42
- <div
43
- style={{
44
- height: '95vh',
45
- width: '95vw',
46
- display: 'grid',
47
- placeItems: 'center',
48
- fontFamily: 'sans-serif',
49
- }}
50
- >
51
- <h1>Invalid Tenant Key</h1>
52
- {!isDevelopment && (
53
- <a href="https://id.campx.in">
54
- <p style={{ textDecoration: 'underline' }}>Login to continue</p>
55
- </a>
56
- )}
57
- </div>
58
- )
59
- }
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
+ <CssBaseline />
30
+ </LoginFormProvider>
31
+ <ToastContainer />
32
+ </DialogProvider>
33
+ </ConfirmContextProvider>
34
+ </MuiThemeProvider>
35
+ </QueryClientProvider>
36
+ </BrowserRouter>
37
+ )
38
+ }
39
+
40
+ const InvalidClientKey = () => {
41
+ return (
42
+ <div
43
+ style={{
44
+ height: '95vh',
45
+ width: '95vw',
46
+ display: 'grid',
47
+ placeItems: 'center',
48
+ fontFamily: 'sans-serif',
49
+ }}
50
+ >
51
+ <h1>Invalid Tenant Key</h1>
52
+ {!isDevelopment && (
53
+ <a href="https://id.campx.in">
54
+ <p style={{ textDecoration: 'underline' }}>Login to continue</p>
55
+ </a>
56
+ )}
57
+ </div>
58
+ )
59
+ }
@@ -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, 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, 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,91 +1,91 @@
1
- import { useEffect, useState } from 'react'
2
- import { useQuery } from 'react-query'
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 } from '../permissions'
8
- import { AssetsStore, UserStore } from '../shared-state'
9
-
10
- const url = window.location.origin
11
-
12
- function useAuth(): {
13
- loading: boolean
14
- data: {
15
- user?: any
16
- roles?: any
17
- username?: any
18
- permissions?: any
19
- assets?: {
20
- logo: string
21
- logo_square: string
22
- }
23
- }
24
- } {
25
- const { openLoginForm } = useLoginForm()
26
- const [loading, setLoading] = useState<boolean>(false)
27
- const [data, setData] = useState(null)
28
- const appInit = async () => {
29
- setLoading(true)
30
-
31
- axios
32
- .get('/auth/my-permissions')
33
- .then((res) => {
34
- console.log(res.data)
35
- setLoading(false)
36
- setData(res.data)
37
- UserStore.update((s) => {
38
- s.username = res.data?.username
39
- s.user = res.data?.user
40
- s.roles = res.data?.roles
41
- })
42
-
43
- PermissionsStore.update((s) => {
44
- s.permissions = {
45
- ...res.data?.permissions,
46
- can_settings_view: 1,
47
- can_dashboard_view: 1,
48
- can_individual_pages_view: 1,
49
- } as any
50
- })
51
- AssetsStore.update((s) => {
52
- s.logo = res.data?.assets.logo
53
- s.logo_square = res.data?.assets.logo_square
54
- })
55
- })
56
- .catch((err) => {
57
- setLoading(false)
58
- if (isDevelopment) {
59
- openLoginForm()
60
- return
61
- } else {
62
- window.location.replace(`https://www.id.campx.in/?redirect_to=${url}`)
63
- }
64
- if (err.response.status !== 401) {
65
- if (err.response.status > 400 && err.response.status < 500) {
66
- window.location.replace(
67
- `https://www.id.campx.in/?redirect_to=${url}`,
68
- )
69
- } else {
70
- toast.error('Server Error')
71
- }
72
- }
73
- })
74
- }
75
-
76
- useEffect(() => {
77
- if (window.location.pathname === '/') {
78
- if (isDevelopment) {
79
- window.location.replace(window.location.origin + '/campx_dev')
80
- }
81
- }
82
- appInit()
83
- }, [])
84
-
85
- return {
86
- loading: loading || !data?.permissions,
87
- data,
88
- }
89
- }
90
-
91
- export default useAuth
1
+ import { useEffect, useState } from 'react'
2
+ import { useQuery } from 'react-query'
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 } from '../permissions'
8
+ import { AssetsStore, UserStore } from '../shared-state'
9
+
10
+ const url = window.location.origin
11
+
12
+ function useAuth(): {
13
+ loading: boolean
14
+ data: {
15
+ user?: any
16
+ roles?: any
17
+ username?: any
18
+ permissions?: any
19
+ assets?: {
20
+ logo: string
21
+ logo_square: string
22
+ }
23
+ }
24
+ } {
25
+ const { openLoginForm } = useLoginForm()
26
+ const [loading, setLoading] = useState<boolean>(false)
27
+ const [data, setData] = useState(null)
28
+ const appInit = async () => {
29
+ setLoading(true)
30
+
31
+ axios
32
+ .get('/auth/my-permissions')
33
+ .then((res) => {
34
+ console.log(res.data)
35
+ setLoading(false)
36
+ setData(res.data)
37
+ UserStore.update((s) => {
38
+ s.username = res.data?.username
39
+ s.user = res.data?.user
40
+ s.roles = res.data?.roles
41
+ })
42
+
43
+ PermissionsStore.update((s) => {
44
+ s.permissions = {
45
+ ...res.data?.permissions,
46
+ can_settings_view: 1,
47
+ can_dashboard_view: 1,
48
+ can_individual_pages_view: 1,
49
+ } as any
50
+ })
51
+ AssetsStore.update((s) => {
52
+ s.logo = res.data?.assets.logo
53
+ s.logo_square = res.data?.assets.logo_square
54
+ })
55
+ })
56
+ .catch((err) => {
57
+ setLoading(false)
58
+ if (isDevelopment) {
59
+ openLoginForm()
60
+ return
61
+ } else {
62
+ window.location.replace(`https://www.id.campx.in/?redirect_to=${url}`)
63
+ }
64
+ if (err.response.status !== 401) {
65
+ if (err.response.status > 400 && err.response.status < 500) {
66
+ window.location.replace(
67
+ `https://www.id.campx.in/?redirect_to=${url}`,
68
+ )
69
+ } else {
70
+ toast.error('Server Error')
71
+ }
72
+ }
73
+ })
74
+ }
75
+
76
+ useEffect(() => {
77
+ if (window.location.pathname === '/') {
78
+ if (isDevelopment) {
79
+ window.location.replace(window.location.origin + '/campx_dev')
80
+ }
81
+ }
82
+ appInit()
83
+ }, [])
84
+
85
+ return {
86
+ loading: loading || !data?.permissions,
87
+ data,
88
+ }
89
+ }
90
+
91
+ export default useAuth
@@ -1,53 +1,53 @@
1
- import { useEffect, useState } from 'react'
2
- import axios from '../config/axios'
3
-
4
- export function useMockFetch(promiseFn: Function) {
5
- const [data, setData] = useState<any>()
6
- const [error, setError] = useState<any>(null)
7
- const [loading, setLoading] = useState(true)
8
-
9
- useEffect(() => {
10
- setLoading(true)
11
- promiseFn()
12
- .then((res) => {
13
- setData(res.data)
14
- setLoading(false)
15
- })
16
- .catch((err) => {
17
- setLoading(false)
18
- setError(null)
19
- })
20
- }, [])
21
-
22
- return {
23
- data,
24
- loading,
25
- }
26
- }
27
-
28
- export default function useFetch(url: string, skip?: boolean) {
29
- const [data, setData] = useState<any>()
30
- const [error, setError] = useState<any>(null)
31
- const [loading, setLoading] = useState(true)
32
-
33
- useEffect(() => {
34
- if (skip) return
35
- setLoading(true)
36
- axios
37
- .get(url)
38
- .then((res) => {
39
- setData(res.data)
40
- setLoading(false)
41
- })
42
- .catch((err) => {
43
- setError(err)
44
- setLoading(false)
45
- })
46
- }, [])
47
-
48
- return {
49
- data,
50
- loading,
51
- error,
52
- }
53
- }
1
+ import { useEffect, useState } from 'react'
2
+ import axios from '../config/axios'
3
+
4
+ export function useMockFetch(promiseFn: Function) {
5
+ const [data, setData] = useState<any>()
6
+ const [error, setError] = useState<any>(null)
7
+ const [loading, setLoading] = useState(true)
8
+
9
+ useEffect(() => {
10
+ setLoading(true)
11
+ promiseFn()
12
+ .then((res) => {
13
+ setData(res.data)
14
+ setLoading(false)
15
+ })
16
+ .catch((err) => {
17
+ setLoading(false)
18
+ setError(null)
19
+ })
20
+ }, [])
21
+
22
+ return {
23
+ data,
24
+ loading,
25
+ }
26
+ }
27
+
28
+ export default function useFetch(url: string, skip?: boolean) {
29
+ const [data, setData] = useState<any>()
30
+ const [error, setError] = useState<any>(null)
31
+ const [loading, setLoading] = useState(true)
32
+
33
+ useEffect(() => {
34
+ if (skip) return
35
+ setLoading(true)
36
+ axios
37
+ .get(url)
38
+ .then((res) => {
39
+ setData(res.data)
40
+ setLoading(false)
41
+ })
42
+ .catch((err) => {
43
+ setError(err)
44
+ setLoading(false)
45
+ })
46
+ }, [])
47
+
48
+ return {
49
+ data,
50
+ loading,
51
+ error,
52
+ }
53
+ }
@@ -1,31 +1,31 @@
1
- import { useLocation, useMatch, useNavigate, useParams } from 'react-router-dom'
2
-
3
- const useHistory = () => {
4
- const navigate = useNavigate()
5
- const { pathname, search } = useLocation()
6
-
7
- return {
8
- push: navigate,
9
- location: {
10
- pathname: pathname,
11
- search: search,
12
- },
13
- }
14
- }
15
- const useRouteMatch = (path?) => {
16
- const { pathname } = useLocation()
17
- const params = useParams()
18
- const match = useMatch({ path, end: false })
19
- // console.log({
20
- // match,
21
- // params,
22
- // pathname,
23
- // })
24
- return {
25
- params: params,
26
- path: match?.pattern?.path,
27
- url: pathname,
28
- }
29
- }
30
-
31
- export { useHistory, useRouteMatch }
1
+ import { useLocation, useMatch, useNavigate, useParams } from 'react-router-dom'
2
+
3
+ const useHistory = () => {
4
+ const navigate = useNavigate()
5
+ const { pathname, search } = useLocation()
6
+
7
+ return {
8
+ push: navigate,
9
+ location: {
10
+ pathname: pathname,
11
+ search: search,
12
+ },
13
+ }
14
+ }
15
+ const useRouteMatch = (path?) => {
16
+ const { pathname } = useLocation()
17
+ const params = useParams()
18
+ const match = useMatch({ path, end: false })
19
+ // console.log({
20
+ // match,
21
+ // params,
22
+ // pathname,
23
+ // })
24
+ return {
25
+ params: params,
26
+ path: match?.pattern?.path,
27
+ url: pathname,
28
+ }
29
+ }
30
+
31
+ export { useHistory, useRouteMatch }