@campxdev/shared 1.4.18 → 1.4.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 (214) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +18 -18
  3. package/package.json +84 -84
  4. package/src/assets/fonts/avenir/index.ts +2 -2
  5. package/src/assets/fonts/poppins/index.ts +7 -7
  6. package/src/assets/images/index.ts +17 -17
  7. package/src/assets/images/unauth.svg +92 -92
  8. package/src/components/ActionButton.tsx +20 -20
  9. package/src/components/Attachment.tsx +26 -26
  10. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  11. package/src/components/AutocompleteSearch/index.tsx +1 -1
  12. package/src/components/Breadcrumbs.tsx +72 -72
  13. package/src/components/Card.tsx +98 -98
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +123 -123
  16. package/src/components/Chips.tsx +81 -81
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +41 -41
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton/DropDownButton.tsx +177 -177
  24. package/src/components/DropDownButton/index.tsx +1 -1
  25. package/src/components/DropDownButton/styles.tsx +56 -56
  26. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  27. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  28. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  29. package/src/components/ErrorBoundary/index.tsx +1 -1
  30. package/src/components/ErrorBox.tsx +42 -42
  31. package/src/components/FilterComponents/FilterButton.tsx +40 -39
  32. package/src/components/FilterComponents/SearchBar.tsx +40 -40
  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 +40 -40
  41. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  42. package/src/components/HookForm/FormLabel.tsx +14 -14
  43. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  44. package/src/components/HookForm/MultiSelect.tsx +53 -53
  45. package/src/components/HookForm/RadioGroup.tsx +45 -45
  46. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  47. package/src/components/HookForm/SingleSelect.tsx +46 -46
  48. package/src/components/HookForm/TextField.tsx +40 -40
  49. package/src/components/HookForm/TimePicker.tsx +40 -40
  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 +45 -45
  59. package/src/components/Image/index.tsx +1 -1
  60. package/src/components/ImageUpload.tsx +98 -98
  61. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  62. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  63. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  64. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  65. package/src/components/Input/DatePicker.tsx +69 -69
  66. package/src/components/Input/DateRangePicker.tsx +105 -84
  67. package/src/components/Input/DateTimePicker.tsx +77 -77
  68. package/src/components/Input/FormLabel.tsx +21 -21
  69. package/src/components/Input/MultiCheckbox.tsx +64 -64
  70. package/src/components/Input/MultiSelect.tsx +150 -150
  71. package/src/components/Input/RadioGroup.tsx +104 -104
  72. package/src/components/Input/SingleCheckbox.tsx +78 -78
  73. package/src/components/Input/SingleSelect.tsx +104 -104
  74. package/src/components/Input/TextField.tsx +46 -46
  75. package/src/components/Input/TimePicker.tsx +70 -70
  76. package/src/components/Input/index.ts +26 -26
  77. package/src/components/Input/types.ts +3 -3
  78. package/src/components/JsonPreview.tsx +7 -7
  79. package/src/components/LabelValue.tsx +21 -21
  80. package/src/components/Layout/ChangePassword.tsx +49 -49
  81. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  82. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  83. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  84. package/src/components/Layout/Header/Notification.tsx +13 -13
  85. package/src/components/Layout/Header/UserBox.tsx +81 -81
  86. package/src/components/Layout/Header/applications.ts +91 -91
  87. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  88. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  89. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  90. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  91. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  92. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  93. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  94. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  95. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  96. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  97. package/src/components/Layout/Header/assets/index.ts +33 -33
  98. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  99. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  100. package/src/components/Layout/Header/assets/payx.svg +19 -19
  101. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  102. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  103. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  104. package/src/components/Layout/Header/icons.tsx +57 -57
  105. package/src/components/Layout/Header/index.tsx +1 -1
  106. package/src/components/Layout/Header/styles.tsx +124 -124
  107. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  108. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  109. package/src/components/Layout/SideNav.tsx +168 -168
  110. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  111. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  112. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  113. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  114. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  115. package/src/components/Layout/Tickets/index.tsx +1 -1
  116. package/src/components/Layout/Tickets/services.ts +11 -11
  117. package/src/components/Layout/Tickets/styles.tsx +136 -136
  118. package/src/components/LinearProgress.tsx +19 -19
  119. package/src/components/ListItemButton.tsx +95 -95
  120. package/src/components/LoginForm.tsx +80 -80
  121. package/src/components/MediaRow/MediaRow.tsx +69 -69
  122. package/src/components/MediaRow/index.tsx +1 -1
  123. package/src/components/ModalButtons/DialogButton.tsx +93 -93
  124. package/src/components/ModalButtons/DrawerButton.tsx +84 -84
  125. package/src/components/ModalButtons/index.tsx +4 -4
  126. package/src/components/NoDataIllustration.tsx +32 -32
  127. package/src/components/PageContent.tsx +12 -12
  128. package/src/components/PageHeader.tsx +55 -55
  129. package/src/components/PageNotFound.tsx +26 -26
  130. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  131. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  132. package/src/components/PopupConfirm/index.tsx +1 -1
  133. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  134. package/src/components/Row.tsx +24 -24
  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.tsx +41 -41
  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 +295 -295
  144. package/src/components/TableComponent/RenderTableBody.tsx +68 -68
  145. package/src/components/TableComponent/Table.tsx +197 -197
  146. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  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 +1 -1
  150. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  151. package/src/components/TableComponent/styles.tsx +170 -170
  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.tsx +108 -108
  163. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  164. package/src/components/UploadFileDialog/index.tsx +1 -1
  165. package/src/components/index.ts +89 -89
  166. package/src/config/axios.ts +73 -73
  167. package/src/config/axiosEvaluator.ts +53 -53
  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 +73 -73
  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/useAuth.ts +96 -96
  181. package/src/hooks/useFetch.ts +53 -53
  182. package/src/hooks/useRouter.ts +31 -31
  183. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  184. package/src/layouts/Components/icons/index.tsx +403 -403
  185. package/src/layouts/Components/styles.tsx +74 -74
  186. package/src/layouts/ComponentsLayout.tsx +3 -3
  187. package/src/permissions/PageWithPermission.tsx +18 -18
  188. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  189. package/src/permissions/ValidateAccess.tsx +18 -18
  190. package/src/permissions/index.ts +2 -2
  191. package/src/react-app-env.d.ts +1 -1
  192. package/src/shared-state/AssetsStore.ts +15 -15
  193. package/src/shared-state/PermissionsStore.ts +352 -352
  194. package/src/shared-state/UserStore.ts +13 -13
  195. package/src/shared-state/index.ts +4 -4
  196. package/src/theme/App.less +3 -3
  197. package/src/theme/MuiThemeProvider.tsx +13 -13
  198. package/src/theme/customCssBaseline.ts +78 -78
  199. package/src/theme/index.css +75 -75
  200. package/src/theme/muiTheme.ts +560 -560
  201. package/src/theme/theme.d.ts +75 -75
  202. package/src/utils/alphabet.ts +23 -23
  203. package/src/utils/arrayPadEnd.ts +3 -3
  204. package/src/utils/formatCurrency.ts +9 -9
  205. package/src/utils/getUrlParams.ts +5 -5
  206. package/src/utils/index.ts +7 -7
  207. package/src/utils/logout.ts +24 -24
  208. package/src/utils/ordinalSuffixOf.ts +14 -14
  209. package/src/utils/romanize.ts +40 -40
  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/tsconfig.json +21 -21
  214. package/yarn-error.log +0 -109
@@ -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