@campxdev/shared 1.5.7 → 1.5.9

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 (222) 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/Avenir-Heavy.ttf +0 -0
  5. package/src/assets/fonts/avenir/Avenir-Medium.ttf +0 -0
  6. package/src/assets/fonts/avenir/Avenir-Regular.ttf +0 -0
  7. package/src/assets/fonts/avenir/index.ts +13 -13
  8. package/src/assets/fonts/poppins/index.ts +18 -18
  9. package/src/assets/images/index.ts +17 -17
  10. package/src/assets/images/unauth.svg +92 -92
  11. package/src/components/ActionButton.tsx +20 -20
  12. package/src/components/Attachment.tsx +26 -26
  13. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  14. package/src/components/AutocompleteSearch/index.tsx +1 -1
  15. package/src/components/Breadcrumbs.tsx +72 -72
  16. package/src/components/Card.tsx +98 -98
  17. package/src/components/CardsGrid.tsx +28 -28
  18. package/src/components/ChangePassword.tsx +123 -123
  19. package/src/components/Chips.tsx +81 -81
  20. package/src/components/Detail.tsx +15 -15
  21. package/src/components/DetailsGrid.tsx +52 -52
  22. package/src/components/DividerHeading.tsx +41 -41
  23. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  24. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  25. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  26. package/src/components/DropDownButton/AnchorElement.tsx +44 -44
  27. package/src/components/DropDownButton/DropDownButton.tsx +184 -184
  28. package/src/components/DropDownButton/DropdownMenuItem.tsx +110 -110
  29. package/src/components/DropDownButton/index.tsx +1 -1
  30. package/src/components/DropDownButton/styles.tsx +59 -59
  31. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  32. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  33. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  34. package/src/components/ErrorBoundary/index.tsx +1 -1
  35. package/src/components/ErrorBox.tsx +42 -42
  36. package/src/components/FilterComponents/FilterButton.tsx +56 -56
  37. package/src/components/FilterComponents/SearchBar.tsx +45 -45
  38. package/src/components/FloatingContainer.tsx +33 -33
  39. package/src/components/Form/Form.tsx +156 -156
  40. package/src/components/Form/RenderForm.tsx +188 -188
  41. package/src/components/FullCalendar/Actions.tsx +162 -162
  42. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  43. package/src/components/FullScreenLoader.tsx +19 -19
  44. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  45. package/src/components/HookForm/DatePicker.tsx +40 -40
  46. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  47. package/src/components/HookForm/FormLabel.tsx +14 -14
  48. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  49. package/src/components/HookForm/MultiSelect.tsx +53 -53
  50. package/src/components/HookForm/RadioGroup.tsx +45 -45
  51. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  52. package/src/components/HookForm/SingleSelect.tsx +46 -46
  53. package/src/components/HookForm/TextField.tsx +40 -40
  54. package/src/components/HookForm/TimePicker.tsx +40 -40
  55. package/src/components/HookForm/index.ts +23 -23
  56. package/src/components/IconButtons/IconButtons.tsx +137 -137
  57. package/src/components/IconButtons/Icons.tsx +268 -268
  58. package/src/components/IconButtons/assets/edit.svg +4 -4
  59. package/src/components/IconButtons/assets/eye.svg +6 -6
  60. package/src/components/IconButtons/assets/trash.svg +7 -7
  61. package/src/components/IconButtons/index.tsx +8 -8
  62. package/src/components/IconLabel.tsx +37 -37
  63. package/src/components/Image/Image.tsx +45 -45
  64. package/src/components/Image/index.tsx +1 -1
  65. package/src/components/ImageUpload.tsx +98 -98
  66. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  67. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  68. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  69. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  70. package/src/components/Input/DatePicker.tsx +73 -73
  71. package/src/components/Input/DateRangePicker.tsx +105 -105
  72. package/src/components/Input/DateTimePicker.tsx +81 -81
  73. package/src/components/Input/FormLabel.tsx +21 -21
  74. package/src/components/Input/MultiCheckbox.tsx +64 -64
  75. package/src/components/Input/MultiSelect.tsx +150 -150
  76. package/src/components/Input/RadioGroup.tsx +104 -104
  77. package/src/components/Input/SingleCheckbox.tsx +78 -78
  78. package/src/components/Input/SingleSelect.tsx +104 -104
  79. package/src/components/Input/TextField.tsx +46 -46
  80. package/src/components/Input/TimePicker.tsx +74 -74
  81. package/src/components/Input/index.ts +26 -26
  82. package/src/components/Input/types.ts +3 -3
  83. package/src/components/JsonPreview.tsx +7 -7
  84. package/src/components/LabelValue.tsx +21 -21
  85. package/src/components/Layout/ChangePassword.tsx +49 -49
  86. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  87. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  88. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  89. package/src/components/Layout/Header/Notification.tsx +13 -13
  90. package/src/components/Layout/Header/UserBox.tsx +70 -70
  91. package/src/components/Layout/Header/applications.ts +91 -91
  92. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  93. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  94. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  95. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  96. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  97. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  98. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  99. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  100. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  101. package/src/components/Layout/Header/assets/index.ts +33 -33
  102. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  103. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  104. package/src/components/Layout/Header/assets/payx.svg +19 -19
  105. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  106. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  107. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  108. package/src/components/Layout/Header/icons.tsx +57 -57
  109. package/src/components/Layout/Header/index.tsx +1 -1
  110. package/src/components/Layout/Header/styles.tsx +124 -124
  111. package/src/components/Layout/Helmet.tsx +49 -49
  112. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  113. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  114. package/src/components/Layout/SideNav.tsx +168 -168
  115. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  116. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  117. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  118. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  119. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  120. package/src/components/Layout/Tickets/index.tsx +1 -1
  121. package/src/components/Layout/Tickets/services.ts +11 -11
  122. package/src/components/Layout/Tickets/styles.tsx +136 -136
  123. package/src/components/LinearProgress.tsx +19 -19
  124. package/src/components/ListItemButton.tsx +95 -95
  125. package/src/components/LoginForm.tsx +80 -80
  126. package/src/components/MediaRow/MediaRow.tsx +69 -69
  127. package/src/components/MediaRow/index.tsx +1 -1
  128. package/src/components/ModalButtons/DialogButton.tsx +121 -121
  129. package/src/components/ModalButtons/DrawerButton.tsx +113 -113
  130. package/src/components/ModalButtons/index.tsx +4 -4
  131. package/src/components/NoDataIllustration.tsx +32 -32
  132. package/src/components/PageContent.tsx +12 -12
  133. package/src/components/PageHeader.tsx +55 -55
  134. package/src/components/PageNotFound.tsx +26 -26
  135. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  136. package/src/components/PopupConfirm/PopupConfirm.tsx +67 -67
  137. package/src/components/PopupConfirm/index.tsx +1 -1
  138. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  139. package/src/components/Row.tsx +24 -24
  140. package/src/components/Spinner.tsx +18 -18
  141. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  142. package/src/components/StepsHeader/index.tsx +1 -1
  143. package/src/components/StyledTableContainer.tsx +33 -33
  144. package/src/components/SwitchButton.tsx +41 -41
  145. package/src/components/Table.tsx +42 -42
  146. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  147. package/src/components/TableComponent/Icons/index.tsx +50 -50
  148. package/src/components/TableComponent/ReactTable.tsx +295 -295
  149. package/src/components/TableComponent/RenderTableBody.tsx +68 -68
  150. package/src/components/TableComponent/Table.tsx +197 -197
  151. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  152. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  153. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  154. package/src/components/TableComponent/index.tsx +1 -1
  155. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  156. package/src/components/TableComponent/styles.tsx +170 -170
  157. package/src/components/TableComponent/types.ts +57 -57
  158. package/src/components/Tabs/NavigationTabs.tsx +80 -80
  159. package/src/components/Tabs/Tabs.tsx +53 -53
  160. package/src/components/Tabs/TabsContainer.tsx +50 -50
  161. package/src/components/Tabs/index.tsx +1 -1
  162. package/src/components/Tabs/styles.tsx +55 -55
  163. package/src/components/ToastContainer/ToastContainer.tsx +57 -57
  164. package/src/components/ToastContainer/index.tsx +1 -1
  165. package/src/components/UploadButton/UploadButton.tsx +126 -126
  166. package/src/components/UploadButton/index.tsx +1 -1
  167. package/src/components/UploadButton/types.ts +19 -19
  168. package/src/components/UploadDocument.tsx +108 -108
  169. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  170. package/src/components/UploadFileDialog/index.tsx +1 -1
  171. package/src/components/index.ts +93 -93
  172. package/src/config/axios.ts +73 -73
  173. package/src/config/axiosEvaluator.ts +53 -53
  174. package/src/config/axiosXTenant.ts +57 -57
  175. package/src/constants/UIConstants.ts +97 -97
  176. package/src/constants/formValidations.ts +6 -6
  177. package/src/constants/index.ts +5 -5
  178. package/src/constants/isDevelopment.ts +3 -3
  179. package/src/constants/permissions.ts +67 -67
  180. package/src/constants/validateMessages.ts +12 -12
  181. package/src/contexts/LoginFormProvider.tsx +39 -39
  182. package/src/contexts/Providers.tsx +73 -73
  183. package/src/contexts/PublicProviders.tsx +30 -30
  184. package/src/contexts/QueryClientProvider.tsx +22 -22
  185. package/src/hooks/index.ts +4 -4
  186. package/src/hooks/useAuth.ts +96 -96
  187. package/src/hooks/useFetch.ts +53 -53
  188. package/src/hooks/useFilters.ts +80 -80
  189. package/src/hooks/useRouter.ts +31 -31
  190. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  191. package/src/layouts/Components/icons/index.tsx +403 -403
  192. package/src/layouts/Components/styles.tsx +74 -74
  193. package/src/layouts/ComponentsLayout.tsx +3 -3
  194. package/src/permissions/PageWithPermission.tsx +18 -18
  195. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  196. package/src/permissions/ValidateAccess.tsx +18 -18
  197. package/src/permissions/index.ts +2 -2
  198. package/src/react-app-env.d.ts +1 -1
  199. package/src/shared-state/AssetsStore.ts +15 -15
  200. package/src/shared-state/PermissionsStore.ts +352 -352
  201. package/src/shared-state/UserStore.ts +13 -13
  202. package/src/shared-state/index.ts +4 -4
  203. package/src/theme/App.less +3 -3
  204. package/src/theme/MuiThemeProvider.tsx +13 -13
  205. package/src/theme/customCssBaseline.ts +135 -135
  206. package/src/theme/index.css +28 -28
  207. package/src/theme/muiTheme.ts +592 -592
  208. package/src/theme/theme.d.ts +75 -75
  209. package/src/utils/alphabet.ts +23 -23
  210. package/src/utils/arrayPadEnd.ts +3 -3
  211. package/src/utils/formatCurrency.ts +9 -9
  212. package/src/utils/getUrlParams.ts +5 -5
  213. package/src/utils/index.ts +7 -7
  214. package/src/utils/logout.ts +25 -25
  215. package/src/utils/ordinalSuffixOf.ts +14 -14
  216. package/src/utils/romanize.ts +40 -40
  217. package/src/utils/withRouteWrapper.tsx +25 -25
  218. package/src/utils/withSuspense.tsx +6 -6
  219. package/styled-components.tsx +60 -60
  220. package/tsconfig.json +21 -21
  221. package/yarn-error.log +109 -0
  222. package/src/components/Layout/Header/assets/commuteX.png +0 -0
@@ -1,136 +1,136 @@
1
- import { TimelineItem } from '@mui/lab'
2
- import { alpha, Box, Card, styled, Typography } from '@mui/material'
3
-
4
- export const StyledListItem = styled(Box, {
5
- shouldForwardProp: (prop) => prop !== 'isActive',
6
- })<{ isActive: boolean }>(({ theme, isActive }) => ({
7
- maxWidth: '400px',
8
- height: '85px',
9
- display: 'flex',
10
- border: theme.borders.grayLight,
11
-
12
- alignItems: 'center',
13
- cursor: 'pointer',
14
- transition: 'all 0.2s ease',
15
- ':first-child': {
16
- borderTopRightRadius: '10px',
17
- borderTopLeftRadius: '10px',
18
- },
19
- '&:hover': {
20
- background: alpha(theme.palette.secondary.main, 0.02),
21
- },
22
-
23
- '& .left': {
24
- paddingLeft: '10px',
25
- marginRight: 'auto',
26
- '& .MuiTypography-root': {
27
- marginTop: '4px',
28
- '& > span': {
29
- color: theme.palette.secondary.main,
30
- },
31
- },
32
- },
33
- '& .right': {
34
- paddingRight: '15px',
35
- display: 'flex',
36
- },
37
- '&:before': {
38
- transition: 'all 0.2s ease',
39
- content: "''",
40
- height: '95%',
41
- width: '4px',
42
- borderRadius: '2px',
43
- background: 'transparent',
44
- ...(isActive && {
45
- background: theme.palette.common.yellow,
46
- }),
47
- },
48
-
49
- ...(isActive && {
50
- background: alpha(theme.palette.secondary.main, 0.035),
51
- }),
52
- }))
53
-
54
- export const StyledRemarksContainer = styled(Box)({
55
- height: '170px',
56
- borderRadius: '10px',
57
- border: '1px solid #1212121A',
58
- marginBottom: '20px ',
59
- })
60
- export const StyledLetterBackGround = styled(Box)({
61
- width: '60px',
62
- height: '60px',
63
- display: 'flex',
64
- backgroundColor: 'black',
65
- justifyContent: 'center',
66
- alignItems: 'center',
67
- })
68
- export const StyledNamecontainer = styled(Box)({
69
- display: 'flex',
70
- gap: '20px',
71
- alignItems: 'center',
72
- margin: '25px',
73
- })
74
-
75
- export const StyledLetter = ({ letter }) => {
76
- //letter?.split(' ')[0][0]}${letter?.split(' ')[1][0]
77
- const value = `${letter?.split(' ')[0][0]}`
78
-
79
- return (
80
- <StyledLetterBackGround>
81
- <Typography variant="h1" sx={{ color: 'white' }}>
82
- {value.toLocaleUpperCase()}
83
- </Typography>
84
- </StyledLetterBackGround>
85
- )
86
- }
87
- export const StyledBox = styled(Box)({
88
- width: '900px',
89
- height: 'calc(80vh - 100px)',
90
- overflowY: 'auto',
91
- '&::-webkit-scrollbar': {
92
- width: '0px',
93
- height: '0px',
94
- },
95
- })
96
-
97
- export const StyledTimelineBox = styled(Box)({
98
- borderRadius: '10px',
99
- border: '1px solid #1212121A',
100
- margin: '20px 0',
101
- padding: '20px',
102
- maxWidth: '600px',
103
- })
104
-
105
- export const StyledTimeLineItem = styled(TimelineItem)(({ theme }) => ({
106
- '& .MuiTimelineDot-root': {
107
- backgroundColor: theme.palette.secondary,
108
- },
109
- '&:before': {
110
- content: 'none',
111
- },
112
- }))
113
-
114
- export const StyledLeftContainer = styled(Box)({
115
- maxHeight: 'calc(80vh - 50px)',
116
- // maxHeight: 'calc(80vh - 130px)', 1st default value
117
- overflowY: 'auto',
118
- '&::-webkit-scrollbar': {
119
- width: '0px',
120
- height: '0px',
121
- },
122
- })
123
-
124
- export const StyledCardData = styled(Card)({
125
- borderRadius: '4px',
126
- width: 'auto',
127
- backgroundColor: '#1E19F51A',
128
- padding: '6px 10px',
129
- })
130
-
131
- export const StyledBoxDetails = styled(Box)({
132
- display: 'flex',
133
- justifyContent: 'space-between',
134
- width: '950px',
135
- padding: '20px',
136
- })
1
+ import { TimelineItem } from '@mui/lab'
2
+ import { alpha, Box, Card, styled, Typography } from '@mui/material'
3
+
4
+ export const StyledListItem = styled(Box, {
5
+ shouldForwardProp: (prop) => prop !== 'isActive',
6
+ })<{ isActive: boolean }>(({ theme, isActive }) => ({
7
+ maxWidth: '400px',
8
+ height: '85px',
9
+ display: 'flex',
10
+ border: theme.borders.grayLight,
11
+
12
+ alignItems: 'center',
13
+ cursor: 'pointer',
14
+ transition: 'all 0.2s ease',
15
+ ':first-child': {
16
+ borderTopRightRadius: '10px',
17
+ borderTopLeftRadius: '10px',
18
+ },
19
+ '&:hover': {
20
+ background: alpha(theme.palette.secondary.main, 0.02),
21
+ },
22
+
23
+ '& .left': {
24
+ paddingLeft: '10px',
25
+ marginRight: 'auto',
26
+ '& .MuiTypography-root': {
27
+ marginTop: '4px',
28
+ '& > span': {
29
+ color: theme.palette.secondary.main,
30
+ },
31
+ },
32
+ },
33
+ '& .right': {
34
+ paddingRight: '15px',
35
+ display: 'flex',
36
+ },
37
+ '&:before': {
38
+ transition: 'all 0.2s ease',
39
+ content: "''",
40
+ height: '95%',
41
+ width: '4px',
42
+ borderRadius: '2px',
43
+ background: 'transparent',
44
+ ...(isActive && {
45
+ background: theme.palette.common.yellow,
46
+ }),
47
+ },
48
+
49
+ ...(isActive && {
50
+ background: alpha(theme.palette.secondary.main, 0.035),
51
+ }),
52
+ }))
53
+
54
+ export const StyledRemarksContainer = styled(Box)({
55
+ height: '170px',
56
+ borderRadius: '10px',
57
+ border: '1px solid #1212121A',
58
+ marginBottom: '20px ',
59
+ })
60
+ export const StyledLetterBackGround = styled(Box)({
61
+ width: '60px',
62
+ height: '60px',
63
+ display: 'flex',
64
+ backgroundColor: 'black',
65
+ justifyContent: 'center',
66
+ alignItems: 'center',
67
+ })
68
+ export const StyledNamecontainer = styled(Box)({
69
+ display: 'flex',
70
+ gap: '20px',
71
+ alignItems: 'center',
72
+ margin: '25px',
73
+ })
74
+
75
+ export const StyledLetter = ({ letter }) => {
76
+ //letter?.split(' ')[0][0]}${letter?.split(' ')[1][0]
77
+ const value = `${letter?.split(' ')[0][0]}`
78
+
79
+ return (
80
+ <StyledLetterBackGround>
81
+ <Typography variant="h1" sx={{ color: 'white' }}>
82
+ {value.toLocaleUpperCase()}
83
+ </Typography>
84
+ </StyledLetterBackGround>
85
+ )
86
+ }
87
+ export const StyledBox = styled(Box)({
88
+ width: '900px',
89
+ height: 'calc(80vh - 100px)',
90
+ overflowY: 'auto',
91
+ '&::-webkit-scrollbar': {
92
+ width: '0px',
93
+ height: '0px',
94
+ },
95
+ })
96
+
97
+ export const StyledTimelineBox = styled(Box)({
98
+ borderRadius: '10px',
99
+ border: '1px solid #1212121A',
100
+ margin: '20px 0',
101
+ padding: '20px',
102
+ maxWidth: '600px',
103
+ })
104
+
105
+ export const StyledTimeLineItem = styled(TimelineItem)(({ theme }) => ({
106
+ '& .MuiTimelineDot-root': {
107
+ backgroundColor: theme.palette.secondary,
108
+ },
109
+ '&:before': {
110
+ content: 'none',
111
+ },
112
+ }))
113
+
114
+ export const StyledLeftContainer = styled(Box)({
115
+ maxHeight: 'calc(80vh - 50px)',
116
+ // maxHeight: 'calc(80vh - 130px)', 1st default value
117
+ overflowY: 'auto',
118
+ '&::-webkit-scrollbar': {
119
+ width: '0px',
120
+ height: '0px',
121
+ },
122
+ })
123
+
124
+ export const StyledCardData = styled(Card)({
125
+ borderRadius: '4px',
126
+ width: 'auto',
127
+ backgroundColor: '#1E19F51A',
128
+ padding: '6px 10px',
129
+ })
130
+
131
+ export const StyledBoxDetails = styled(Box)({
132
+ display: 'flex',
133
+ justifyContent: 'space-between',
134
+ width: '950px',
135
+ padding: '20px',
136
+ })
@@ -1,19 +1,19 @@
1
- import {
2
- BoxProps,
3
- styled,
4
- Box,
5
- LinearProgress as MuiLinearProgress,
6
- } from '@mui/material'
7
-
8
- export const LinearProgress = styled((props: BoxProps) => (
9
- <Box {...props}>
10
- <MuiLinearProgress color={'inherit'} sx={{ height: '4px' }} />
11
- </Box>
12
- ))(({ theme }) => ({
13
- width: '100%',
14
- position: 'fixed',
15
- top: 0,
16
- left: 0,
17
- zIndex: 400,
18
- color: theme.palette.primary.main,
19
- }))
1
+ import {
2
+ BoxProps,
3
+ styled,
4
+ Box,
5
+ LinearProgress as MuiLinearProgress,
6
+ } from '@mui/material'
7
+
8
+ export const LinearProgress = styled((props: BoxProps) => (
9
+ <Box {...props}>
10
+ <MuiLinearProgress color={'inherit'} sx={{ height: '4px' }} />
11
+ </Box>
12
+ ))(({ theme }) => ({
13
+ width: '100%',
14
+ position: 'fixed',
15
+ top: 0,
16
+ left: 0,
17
+ zIndex: 400,
18
+ color: theme.palette.primary.main,
19
+ }))
@@ -1,95 +1,95 @@
1
- import { ChevronRight } from '@mui/icons-material'
2
- import {
3
- Box,
4
- ListItemButton as MuiListItemButton,
5
- ListItemButtonProps,
6
- ListItemIcon,
7
- ListItemText,
8
- styled,
9
- } from '@mui/material'
10
- import { ReactNode } from 'react'
11
-
12
- interface Props extends ListItemButtonProps {
13
- hasChildren?: boolean
14
- isActive?: boolean
15
- label: String
16
- icon?: any
17
- }
18
-
19
- export const ListItemButton = ({
20
- isActive,
21
- hasChildren,
22
- onClick,
23
- label,
24
- icon: Icon,
25
- }: Props) => {
26
- return (
27
- <StyledListItemButton isActive={isActive} onClick={onClick}>
28
- {Icon ? (
29
- <ListItemIcon>{<Icon />}</ListItemIcon>
30
- ) : (
31
- <Box minWidth={16}></Box>
32
- )}
33
- <ListItemText primary={label} />
34
- </StyledListItemButton>
35
- )
36
- }
37
-
38
- export const StyledChevronIcon = styled(ChevronRight)<{ open: boolean }>(
39
- ({ theme, open }) => ({
40
- transform: open ? 'rotate(90deg)' : 'rotate(0deg)',
41
- transition: 'transform 0.2s ease-in-out',
42
- }),
43
- )
44
-
45
- export const StyledListItemButton = styled(MuiListItemButton)<{
46
- isActive: boolean
47
- children: ReactNode
48
- dropDown?: boolean
49
- }>(({ theme, isActive, dropDown = false }) => ({
50
- gap: '10px',
51
- fontWeight: 'bold',
52
- padding: '8px 20px',
53
- backgroundColor: isActive && '#1d1d1d',
54
- '&:hover': {
55
- backgroundColor: isActive && '#1d1d1d',
56
- },
57
- '&:after': {
58
- content: '""',
59
- position: 'absolute',
60
- height: '100%',
61
- left: 0,
62
- top: 0,
63
- width: isActive ? '6px' : 0,
64
- opacity: isActive ? (dropDown ? 0 : 1) : 0,
65
- transition: theme.transitions.create(['opacity', 'width']),
66
- background: theme.palette.common.yellow,
67
- borderTopRightRadius: '3px',
68
- borderBottomRightRadius: '3px',
69
- },
70
- '&.MuiButton-endIcon, &.MuiButton-startIcon': {
71
- transition: theme.transitions.create(['color']),
72
-
73
- '&.MuiSvgIcon-root': {
74
- fontSize: 'inherit',
75
- transition: 'none',
76
- },
77
- },
78
- '& .MuiSvgIcon-root': {
79
- fontSize: theme.typography.pxToRem(20),
80
- marginRight: theme.spacing(1),
81
- // color: isActive
82
- // ? theme.sidebar.menuItemColorActive
83
- // : theme.sidebar.menuItemIconColor,
84
- },
85
- '& .MuiTypography-root': {
86
- color: theme.palette.common.white,
87
- },
88
- '& svg': {
89
- color: theme.palette.common.white,
90
- },
91
- '& .MuiListItemIcon-root': {
92
- minWidth: 0,
93
- maxWidth: '1rem',
94
- },
95
- }))
1
+ import { ChevronRight } from '@mui/icons-material'
2
+ import {
3
+ Box,
4
+ ListItemButton as MuiListItemButton,
5
+ ListItemButtonProps,
6
+ ListItemIcon,
7
+ ListItemText,
8
+ styled,
9
+ } from '@mui/material'
10
+ import { ReactNode } from 'react'
11
+
12
+ interface Props extends ListItemButtonProps {
13
+ hasChildren?: boolean
14
+ isActive?: boolean
15
+ label: String
16
+ icon?: any
17
+ }
18
+
19
+ export const ListItemButton = ({
20
+ isActive,
21
+ hasChildren,
22
+ onClick,
23
+ label,
24
+ icon: Icon,
25
+ }: Props) => {
26
+ return (
27
+ <StyledListItemButton isActive={isActive} onClick={onClick}>
28
+ {Icon ? (
29
+ <ListItemIcon>{<Icon />}</ListItemIcon>
30
+ ) : (
31
+ <Box minWidth={16}></Box>
32
+ )}
33
+ <ListItemText primary={label} />
34
+ </StyledListItemButton>
35
+ )
36
+ }
37
+
38
+ export const StyledChevronIcon = styled(ChevronRight)<{ open: boolean }>(
39
+ ({ theme, open }) => ({
40
+ transform: open ? 'rotate(90deg)' : 'rotate(0deg)',
41
+ transition: 'transform 0.2s ease-in-out',
42
+ }),
43
+ )
44
+
45
+ export const StyledListItemButton = styled(MuiListItemButton)<{
46
+ isActive: boolean
47
+ children: ReactNode
48
+ dropDown?: boolean
49
+ }>(({ theme, isActive, dropDown = false }) => ({
50
+ gap: '10px',
51
+ fontWeight: 'bold',
52
+ padding: '8px 20px',
53
+ backgroundColor: isActive && '#1d1d1d',
54
+ '&:hover': {
55
+ backgroundColor: isActive && '#1d1d1d',
56
+ },
57
+ '&:after': {
58
+ content: '""',
59
+ position: 'absolute',
60
+ height: '100%',
61
+ left: 0,
62
+ top: 0,
63
+ width: isActive ? '6px' : 0,
64
+ opacity: isActive ? (dropDown ? 0 : 1) : 0,
65
+ transition: theme.transitions.create(['opacity', 'width']),
66
+ background: theme.palette.common.yellow,
67
+ borderTopRightRadius: '3px',
68
+ borderBottomRightRadius: '3px',
69
+ },
70
+ '&.MuiButton-endIcon, &.MuiButton-startIcon': {
71
+ transition: theme.transitions.create(['color']),
72
+
73
+ '&.MuiSvgIcon-root': {
74
+ fontSize: 'inherit',
75
+ transition: 'none',
76
+ },
77
+ },
78
+ '& .MuiSvgIcon-root': {
79
+ fontSize: theme.typography.pxToRem(20),
80
+ marginRight: theme.spacing(1),
81
+ // color: isActive
82
+ // ? theme.sidebar.menuItemColorActive
83
+ // : theme.sidebar.menuItemIconColor,
84
+ },
85
+ '& .MuiTypography-root': {
86
+ color: theme.palette.common.white,
87
+ },
88
+ '& svg': {
89
+ color: theme.palette.common.white,
90
+ },
91
+ '& .MuiListItemIcon-root': {
92
+ minWidth: 0,
93
+ maxWidth: '1rem',
94
+ },
95
+ }))
@@ -1,80 +1,80 @@
1
- import { Visibility, VisibilityOff } from '@mui/icons-material'
2
- import { Alert, Box, IconButton, InputAdornment, Stack } from '@mui/material'
3
- import axiosBase from 'axios'
4
- import Cookies from 'js-cookie'
5
- import { useState } from 'react'
6
- import { useForm } from 'react-hook-form'
7
- import ActionButton from './ActionButton'
8
- import { FormTextField } from './HookForm'
9
-
10
- export function LoginForm({ loginUrl }: { loginUrl?: string }) {
11
- const [showPassword, setShowPassword] = useState(false)
12
- const { handleSubmit, control } = useForm()
13
- const [error, setError] = useState('')
14
-
15
- const onSubmit = async (values) => {
16
- try {
17
- const res = await axiosBase({
18
- method: 'POST',
19
- baseURL: process.env.REACT_APP_API_HOST,
20
- url: loginUrl ? loginUrl : `/auth-server/auth/login`,
21
- data: values,
22
- })
23
- Cookies.set('campx_tenant', res?.data?.subDomain)
24
- Cookies.set('campx_session_key', res.data?.token)
25
- window.location.reload()
26
- } catch (err) {
27
- // eslint-disable-next-line no-console
28
- console.log(err)
29
- setError(err?.response?.data?.message ?? 'Server Error')
30
- }
31
- }
32
-
33
- return (
34
- <>
35
- <form onSubmit={handleSubmit(onSubmit)}>
36
- <Stack gap={'30px'}>
37
- <Box>
38
- <FormTextField
39
- control={control}
40
- name="username"
41
- label="User ID"
42
- required
43
- />
44
- </Box>
45
- <Box>
46
- <FormTextField
47
- control={control}
48
- name="password"
49
- label="Password"
50
- type={showPassword ? 'text' : 'password'}
51
- required
52
- InputProps={{
53
- endAdornment: (
54
- <InputAdornment position="end">
55
- <IconButton
56
- size="small"
57
- aria-label="toggle password visibility"
58
- onClick={() => setShowPassword((prev) => !prev)}
59
- edge="end"
60
- >
61
- {showPassword ? <VisibilityOff /> : <Visibility />}
62
- </IconButton>
63
- </InputAdornment>
64
- ),
65
- }}
66
- />
67
- </Box>
68
- <ActionButton type="submit">Login</ActionButton>
69
- </Stack>
70
- </form>
71
- {error && (
72
- <Alert severity="error" sx={{ marginTop: '20px' }}>
73
- {error}
74
- </Alert>
75
- )}
76
- </>
77
- )
78
- }
79
-
80
- export default LoginForm
1
+ import { Visibility, VisibilityOff } from '@mui/icons-material'
2
+ import { Alert, Box, IconButton, InputAdornment, Stack } from '@mui/material'
3
+ import axiosBase from 'axios'
4
+ import Cookies from 'js-cookie'
5
+ import { useState } from 'react'
6
+ import { useForm } from 'react-hook-form'
7
+ import ActionButton from './ActionButton'
8
+ import { FormTextField } from './HookForm'
9
+
10
+ export function LoginForm({ loginUrl }: { loginUrl?: string }) {
11
+ const [showPassword, setShowPassword] = useState(false)
12
+ const { handleSubmit, control } = useForm()
13
+ const [error, setError] = useState('')
14
+
15
+ const onSubmit = async (values) => {
16
+ try {
17
+ const res = await axiosBase({
18
+ method: 'POST',
19
+ baseURL: process.env.REACT_APP_API_HOST,
20
+ url: loginUrl ? loginUrl : `/auth-server/auth/login`,
21
+ data: values,
22
+ })
23
+ Cookies.set('campx_tenant', res?.data?.subDomain)
24
+ Cookies.set('campx_session_key', res.data?.token)
25
+ window.location.reload()
26
+ } catch (err) {
27
+ // eslint-disable-next-line no-console
28
+ console.log(err)
29
+ setError(err?.response?.data?.message ?? 'Server Error')
30
+ }
31
+ }
32
+
33
+ return (
34
+ <>
35
+ <form onSubmit={handleSubmit(onSubmit)}>
36
+ <Stack gap={'30px'}>
37
+ <Box>
38
+ <FormTextField
39
+ control={control}
40
+ name="username"
41
+ label="User ID"
42
+ required
43
+ />
44
+ </Box>
45
+ <Box>
46
+ <FormTextField
47
+ control={control}
48
+ name="password"
49
+ label="Password"
50
+ type={showPassword ? 'text' : 'password'}
51
+ required
52
+ InputProps={{
53
+ endAdornment: (
54
+ <InputAdornment position="end">
55
+ <IconButton
56
+ size="small"
57
+ aria-label="toggle password visibility"
58
+ onClick={() => setShowPassword((prev) => !prev)}
59
+ edge="end"
60
+ >
61
+ {showPassword ? <VisibilityOff /> : <Visibility />}
62
+ </IconButton>
63
+ </InputAdornment>
64
+ ),
65
+ }}
66
+ />
67
+ </Box>
68
+ <ActionButton type="submit">Login</ActionButton>
69
+ </Stack>
70
+ </form>
71
+ {error && (
72
+ <Alert severity="error" sx={{ marginTop: '20px' }}>
73
+ {error}
74
+ </Alert>
75
+ )}
76
+ </>
77
+ )
78
+ }
79
+
80
+ export default LoginForm