@campxdev/shared 0.5.19 → 0.5.21

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 (200) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +15 -15
  3. package/package.json +52 -52
  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 +73 -73
  13. package/src/components/Card.tsx +97 -97
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +164 -164
  16. package/src/components/Chips.tsx +77 -77
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +40 -40
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +63 -63
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton.tsx +190 -190
  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 +26 -26
  30. package/src/components/FullCalendar/Actions.tsx +162 -162
  31. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  32. package/src/components/FullScreenLoader.tsx +19 -19
  33. package/src/components/HookForm/AutoCompleteSearch.tsx +143 -143
  34. package/src/components/HookForm/DatePicker.tsx +65 -65
  35. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  36. package/src/components/HookForm/FormLabel.tsx +14 -14
  37. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  38. package/src/components/HookForm/MultiSelect.tsx +100 -100
  39. package/src/components/HookForm/RadioGroup.tsx +112 -112
  40. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  41. package/src/components/HookForm/SingleSelect.tsx +93 -93
  42. package/src/components/HookForm/TextField.tsx +74 -74
  43. package/src/components/HookForm/TimePicker.tsx +82 -82
  44. package/src/components/HookForm/index.ts +23 -23
  45. package/src/components/IconButtons/IconButtons.tsx +137 -137
  46. package/src/components/IconButtons/Icons.tsx +268 -268
  47. package/src/components/IconButtons/assets/edit.svg +4 -4
  48. package/src/components/IconButtons/assets/eye.svg +6 -6
  49. package/src/components/IconButtons/assets/trash.svg +7 -7
  50. package/src/components/IconButtons/index.tsx +8 -8
  51. package/src/components/IconLabel.tsx +37 -37
  52. package/src/components/Image/Image.tsx +43 -43
  53. package/src/components/Image/index.tsx +1 -1
  54. package/src/components/ImageUpload.tsx +98 -98
  55. package/src/components/Input/AutoCompleteSearch.tsx +143 -143
  56. package/src/components/Input/DatePicker.tsx +60 -60
  57. package/src/components/Input/DateRangePicker.tsx +131 -131
  58. package/src/components/Input/DateTimePicker.tsx +70 -70
  59. package/src/components/Input/FormLabel.tsx +14 -14
  60. package/src/components/Input/MultiCheckbox.tsx +79 -79
  61. package/src/components/Input/MultiSelect.tsx +52 -52
  62. package/src/components/Input/RadioGroup.tsx +55 -55
  63. package/src/components/Input/SingleCheckbox.tsx +23 -23
  64. package/src/components/Input/SingleSelect.tsx +139 -139
  65. package/src/components/Input/TextField.tsx +50 -50
  66. package/src/components/Input/TimePicker.tsx +82 -82
  67. package/src/components/Input/index.ts +26 -26
  68. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  69. package/src/components/JsonPreview/index.tsx +1 -1
  70. package/src/components/LabelValue/LabelValue.tsx +21 -21
  71. package/src/components/LabelValue/index.tsx +1 -1
  72. package/src/components/Layout/ChangePassword.tsx +49 -49
  73. package/src/components/Layout/Header/AppHeader.tsx +113 -113
  74. package/src/components/Layout/Header/AppsMenu.tsx +92 -92
  75. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  76. package/src/components/Layout/Header/FreshDeskHelpButton.tsx +19 -19
  77. package/src/components/Layout/Header/Notification.tsx +13 -13
  78. package/src/components/Layout/Header/UserBox.tsx +70 -70
  79. package/src/components/Layout/Header/applications.ts +87 -87
  80. package/src/components/Layout/Header/assets/campx.svg +29 -29
  81. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  82. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  83. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  84. package/src/components/Layout/Header/assets/index.ts +23 -23
  85. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  86. package/src/components/Layout/Header/assets/payxHeader.svg +21 -21
  87. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  88. package/src/components/Layout/Header/assets/peoplexHeader.svg +14 -14
  89. package/src/components/Layout/Header/icons.tsx +57 -57
  90. package/src/components/Layout/Header/index.tsx +1 -1
  91. package/src/components/Layout/Header/styles.tsx +98 -98
  92. package/src/components/LayoutWrapper.tsx +25 -25
  93. package/src/components/LinearProgress.tsx +19 -19
  94. package/src/components/ListItemButton.tsx +94 -94
  95. package/src/components/LoginForm.tsx +103 -103
  96. package/src/components/MediaRow/MediaRow.tsx +69 -69
  97. package/src/components/MediaRow/index.tsx +1 -1
  98. package/src/components/MenuButton.tsx +103 -103
  99. package/src/components/ModalButtons/DialogButton.tsx +85 -85
  100. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  101. package/src/components/ModalButtons/index.tsx +4 -4
  102. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  103. package/src/components/NoDataIllustration/index.tsx +1 -1
  104. package/src/components/PageContent.tsx +17 -17
  105. package/src/components/PageHeader.tsx +52 -52
  106. package/src/components/PageNotFound.tsx +26 -26
  107. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  108. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  109. package/src/components/PopupConfirm/index.tsx +1 -1
  110. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  111. package/src/components/Row/Row.tsx +24 -24
  112. package/src/components/Row/index.tsx +1 -1
  113. package/src/components/SearchBar/SearchBar.tsx +53 -53
  114. package/src/components/SearchBar/index.tsx +1 -1
  115. package/src/components/SideMenuHeader.tsx +29 -29
  116. package/src/components/SideNav.tsx +150 -150
  117. package/src/components/Spinner.tsx +18 -18
  118. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  119. package/src/components/StepsHeader/index.tsx +1 -1
  120. package/src/components/Styled/OutlinedIconButton.tsx +7 -7
  121. package/src/components/Styled/index.tsx +1 -1
  122. package/src/components/StyledTableContainer.tsx +33 -33
  123. package/src/components/Swiper/Swiper.tsx +39 -39
  124. package/src/components/Swiper/index.tsx +1 -1
  125. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  126. package/src/components/SwitchButton/index.tsx +1 -1
  127. package/src/components/Table.tsx +42 -42
  128. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  129. package/src/components/TableComponent/Icons/index.tsx +50 -50
  130. package/src/components/TableComponent/ReactTable.tsx +293 -293
  131. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  132. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  133. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  134. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  135. package/src/components/TableComponent/index.tsx +221 -221
  136. package/src/components/TableComponent/react-table-config.d.ts +129 -129
  137. package/src/components/TableComponent/styles.tsx +173 -173
  138. package/src/components/TableComponent/types.ts +57 -57
  139. package/src/components/Tabs/Tabs.tsx +52 -52
  140. package/src/components/Tabs/TabsContainer.tsx +50 -50
  141. package/src/components/Tabs/index.tsx +1 -1
  142. package/src/components/Tabs/styles.tsx +55 -55
  143. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  144. package/src/components/ToastContainer/index.tsx +1 -1
  145. package/src/components/UploadButton/UploadButton.tsx +98 -98
  146. package/src/components/UploadButton/index.tsx +1 -1
  147. package/src/components/UploadButton/types.ts +14 -14
  148. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  149. package/src/components/UploadDocument/index.tsx +1 -1
  150. package/src/components/UploadFileDialog/UploadFileDialog.tsx +240 -240
  151. package/src/components/UploadFileDialog/index.tsx +1 -1
  152. package/src/components/index.ts +82 -82
  153. package/src/config/axios.ts +73 -73
  154. package/src/constants/UIConstants.ts +97 -97
  155. package/src/constants/formValidations.ts +6 -6
  156. package/src/constants/index.ts +5 -5
  157. package/src/constants/isDevelopment.ts +3 -3
  158. package/src/constants/permissions.ts +67 -67
  159. package/src/constants/validateMessages.ts +12 -12
  160. package/src/contexts/LoginFormProvider.tsx +39 -39
  161. package/src/contexts/Providers.tsx +57 -58
  162. package/src/contexts/QueryClientProvider.tsx +22 -22
  163. package/src/hooks/index.ts +3 -3
  164. package/src/hooks/useAppInit.ts +33 -27
  165. package/src/hooks/useAuth.ts +90 -90
  166. package/src/hooks/useFetch.ts +53 -53
  167. package/src/hooks/useRouter.ts +31 -31
  168. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  169. package/src/layouts/Components/icons/index.tsx +403 -403
  170. package/src/layouts/Components/styles.tsx +60 -60
  171. package/src/layouts/ComponentsLayout.tsx +3 -3
  172. package/src/permissions/PageWithPermission.tsx +18 -18
  173. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  174. package/src/permissions/PermissionsStore.ts +352 -295
  175. package/src/permissions/ValidateAccess.tsx +18 -18
  176. package/src/permissions/index.ts +3 -3
  177. package/src/react-app-env.d.ts +1 -1
  178. package/src/shared-state/AssetsStore.ts +15 -15
  179. package/src/shared-state/UserStore.ts +13 -13
  180. package/src/shared-state/index.ts +3 -3
  181. package/src/theme/App.less +3 -3
  182. package/src/theme/MuiThemeProvider.tsx +13 -13
  183. package/src/theme/customCssBaseline.ts +78 -78
  184. package/src/theme/index.css +75 -75
  185. package/src/theme/muiTheme.ts +516 -516
  186. package/src/theme/theme.d.ts +75 -75
  187. package/src/utils/alphabet.ts +23 -23
  188. package/src/utils/arrayPadEnd.ts +3 -3
  189. package/src/utils/formatCurrency.ts +9 -9
  190. package/src/utils/getUrlParams.ts +5 -5
  191. package/src/utils/index.ts +8 -8
  192. package/src/utils/logout.ts +24 -24
  193. package/src/utils/ordinalSuffixOf.ts +14 -14
  194. package/src/utils/romanize.ts +40 -40
  195. package/src/utils/withLocalization.tsx +11 -11
  196. package/src/utils/withRouteWrapper.tsx +25 -25
  197. package/src/utils/withSuspense.tsx +6 -6
  198. package/styled-components.tsx +60 -60
  199. package/todo.md +8 -8
  200. package/tsconfig.json +21 -21
@@ -1,58 +1,57 @@
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
- if (isInvalid) return <InvalidClientKey />
22
- return (
23
- <BrowserRouter basename={isDevelopment ? 'campx_dev' : campxTenantKey}>
24
- <QueryClientProvider>
25
- <MuiThemeProvider>
26
- <DialogProvider>
27
- <LoginFormProvider>
28
- <ConfirmContextProvider>{children}</ConfirmContextProvider>
29
- <CssBaseline />
30
- </LoginFormProvider>
31
- <ToastContainer />
32
- </DialogProvider>
33
- </MuiThemeProvider>
34
- </QueryClientProvider>
35
- </BrowserRouter>
36
- )
37
- }
38
-
39
- const InvalidClientKey = () => {
40
- return (
41
- <div
42
- style={{
43
- height: '95vh',
44
- width: '95vw',
45
- display: 'grid',
46
- placeItems: 'center',
47
- fontFamily: 'sans-serif',
48
- }}
49
- >
50
- <h1>Invalid Tenant Key</h1>
51
- {!isDevelopment && (
52
- <a href='https://id.campx.in'>
53
- <p>Login to continue</p>
54
- </a>
55
- )}
56
- </div>
57
- )
58
- }
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' : campxTenantKey}>
23
+ <QueryClientProvider>
24
+ <MuiThemeProvider>
25
+ <DialogProvider>
26
+ <LoginFormProvider>
27
+ <ConfirmContextProvider>{children}</ConfirmContextProvider>
28
+ <CssBaseline />
29
+ </LoginFormProvider>
30
+ <ToastContainer />
31
+ </DialogProvider>
32
+ </MuiThemeProvider>
33
+ </QueryClientProvider>
34
+ </BrowserRouter>
35
+ )
36
+ }
37
+
38
+ const InvalidClientKey = () => {
39
+ return (
40
+ <div
41
+ style={{
42
+ height: '95vh',
43
+ width: '95vw',
44
+ display: 'grid',
45
+ placeItems: 'center',
46
+ fontFamily: 'sans-serif',
47
+ }}
48
+ >
49
+ <h1>Invalid Tenant Key</h1>
50
+ {!isDevelopment && (
51
+ <a href='https://id.campx.in'>
52
+ <p>Login to continue</p>
53
+ </a>
54
+ )}
55
+ </div>
56
+ )
57
+ }
@@ -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,27 +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
- export default function useAppInit() {
7
- const [isInvalid, setIsInvalid] = useState(false)
8
- useEffect(() => {
9
- if (!isDevelopment) {
10
- if (campxTenantKey) {
11
- window.location.replace(window.location.origin + `/${campxTenantKey}`)
12
- return
13
- }
14
-
15
- window.location.replace('https://id.campx.in')
16
- }
17
-
18
- if (window.location.pathname === '/' && isDevelopment) {
19
- Cookies.set('campx_tenant', 'campx_dev')
20
- window.location.href = window.location.origin + '/campx_dev'
21
- }
22
- }, [])
23
-
24
- return {
25
- isInvalid,
26
- }
27
- }
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 (!campxTenantKey) {
14
+ return window.location.replace('https://id.campx.in')
15
+ }
16
+
17
+ if (!urlTenantKey) {
18
+ return window.location.replace(
19
+ window.location.origin + `/${campxTenantKey}`
20
+ )
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,90 +1,90 @@
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 (err.response.status !== 401) {
59
- if (err.response.status > 400 && err.response.status < 500) {
60
- window.location.replace(
61
- `https://www.id.campx.in/?redirect_to=${url}`
62
- )
63
- } else {
64
- toast.error('Server Error')
65
- }
66
- }
67
- if (isDevelopment) {
68
- openLoginForm()
69
- } else {
70
- window.location.replace(`https://www.id.campx.in/?redirect_to=${url}`)
71
- }
72
- })
73
- }
74
-
75
- useEffect(() => {
76
- if (window.location.pathname === '/') {
77
- if (isDevelopment) {
78
- window.location.replace(window.location.origin + '/campx_dev')
79
- }
80
- }
81
- appInit()
82
- }, [])
83
-
84
- return {
85
- loading: loading || !data?.permissions,
86
- data,
87
- }
88
- }
89
-
90
- 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 (err.response.status !== 401) {
59
+ if (err.response.status > 400 && err.response.status < 500) {
60
+ window.location.replace(
61
+ `https://www.id.campx.in/?redirect_to=${url}`
62
+ )
63
+ } else {
64
+ toast.error('Server Error')
65
+ }
66
+ }
67
+ if (isDevelopment) {
68
+ openLoginForm()
69
+ } else {
70
+ window.location.replace(`https://www.id.campx.in/?redirect_to=${url}`)
71
+ }
72
+ })
73
+ }
74
+
75
+ useEffect(() => {
76
+ if (window.location.pathname === '/') {
77
+ if (isDevelopment) {
78
+ window.location.replace(window.location.origin + '/campx_dev')
79
+ }
80
+ }
81
+ appInit()
82
+ }, [])
83
+
84
+ return {
85
+ loading: loading || !data?.permissions,
86
+ data,
87
+ }
88
+ }
89
+
90
+ 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 }