@campxdev/shared 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +17 -17
  3. package/package.json +82 -82
  4. package/src/assets/fonts/avenir/index.ts +2 -2
  5. package/src/assets/fonts/poppins/index.ts +7 -7
  6. package/src/assets/images/index.ts +17 -17
  7. package/src/assets/images/unauth.svg +92 -92
  8. package/src/components/ActionButton.tsx +28 -28
  9. package/src/components/Attachment.tsx +26 -26
  10. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  11. package/src/components/AutocompleteSearch/index.tsx +1 -1
  12. package/src/components/Breadcrumbs.tsx +72 -72
  13. package/src/components/Card.tsx +98 -98
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +164 -164
  16. package/src/components/Chips.tsx +81 -81
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +41 -41
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton.tsx +194 -194
  24. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  25. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  26. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  27. package/src/components/ErrorBoundary/index.tsx +1 -1
  28. package/src/components/ErrorBox.tsx +42 -42
  29. package/src/components/FloatingContainer.tsx +33 -33
  30. package/src/components/Form/Form.tsx +156 -156
  31. package/src/components/Form/RenderForm.tsx +188 -188
  32. package/src/components/FullCalendar/Actions.tsx +162 -162
  33. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  34. package/src/components/FullScreenLoader.tsx +19 -19
  35. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  36. package/src/components/HookForm/DatePicker.tsx +65 -65
  37. package/src/components/HookForm/DateTimePicker.tsx +70 -70
  38. package/src/components/HookForm/FormLabel.tsx +14 -14
  39. package/src/components/HookForm/MultiCheckbox.tsx +82 -82
  40. package/src/components/HookForm/MultiSelect.tsx +100 -100
  41. package/src/components/HookForm/RadioGroup.tsx +106 -106
  42. package/src/components/HookForm/SingleCheckbox.tsx +46 -46
  43. package/src/components/HookForm/SingleSelect.tsx +94 -94
  44. package/src/components/HookForm/TextField.tsx +74 -74
  45. package/src/components/HookForm/TimePicker.tsx +82 -82
  46. package/src/components/HookForm/index.ts +23 -23
  47. package/src/components/IconButtons/IconButtons.tsx +137 -137
  48. package/src/components/IconButtons/Icons.tsx +268 -268
  49. package/src/components/IconButtons/assets/edit.svg +4 -4
  50. package/src/components/IconButtons/assets/eye.svg +6 -6
  51. package/src/components/IconButtons/assets/trash.svg +7 -7
  52. package/src/components/IconButtons/index.tsx +8 -8
  53. package/src/components/IconLabel.tsx +37 -37
  54. package/src/components/Image/Image.tsx +43 -43
  55. package/src/components/Image/index.tsx +1 -1
  56. package/src/components/ImageUpload.tsx +98 -98
  57. package/src/components/Input/AutoCompleteSearch.tsx +113 -113
  58. package/src/components/Input/DatePicker.tsx +60 -60
  59. package/src/components/Input/DateRangePicker.tsx +131 -131
  60. package/src/components/Input/DateTimePicker.tsx +70 -70
  61. package/src/components/Input/FormLabel.tsx +14 -14
  62. package/src/components/Input/MultiCheckbox.tsx +79 -79
  63. package/src/components/Input/MultiSelect.tsx +52 -52
  64. package/src/components/Input/RadioGroup.tsx +61 -61
  65. package/src/components/Input/SingleCheckbox.tsx +23 -23
  66. package/src/components/Input/SingleSelect.tsx +126 -126
  67. package/src/components/Input/TextField.tsx +50 -50
  68. package/src/components/Input/TimePicker.tsx +82 -82
  69. package/src/components/Input/index.ts +26 -26
  70. package/src/components/JsonPreview/JsonPreview.tsx +7 -7
  71. package/src/components/JsonPreview/index.tsx +1 -1
  72. package/src/components/LabelValue/LabelValue.tsx +21 -21
  73. package/src/components/LabelValue/index.tsx +1 -1
  74. package/src/components/Layout/ChangePassword.tsx +49 -49
  75. package/src/components/Layout/Header/AppHeader.tsx +124 -124
  76. package/src/components/Layout/Header/AppsMenu.tsx +92 -92
  77. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  78. package/src/components/Layout/Header/HelpWidget/HelpWidget.tsx +299 -298
  79. package/src/components/Layout/Header/HelpWidget/styles.tsx +94 -94
  80. package/src/components/Layout/Header/Notification.tsx +13 -13
  81. package/src/components/Layout/Header/UserBox.tsx +91 -91
  82. package/src/components/Layout/Header/applications.ts +90 -90
  83. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  84. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  85. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  86. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  87. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  88. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  89. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  90. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  91. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  92. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  93. package/src/components/Layout/Header/assets/index.ts +33 -33
  94. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  95. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  96. package/src/components/Layout/Header/assets/payx.svg +19 -19
  97. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  98. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  99. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  100. package/src/components/Layout/Header/icons.tsx +57 -57
  101. package/src/components/Layout/Header/index.tsx +1 -1
  102. package/src/components/Layout/Header/styles.tsx +98 -98
  103. package/src/components/Layout/Tickets/MyTickets.tsx +76 -74
  104. package/src/components/Layout/Tickets/Services.tsx +6 -6
  105. package/src/components/Layout/Tickets/TicketDetails.tsx +66 -66
  106. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  107. package/src/components/Layout/Tickets/index.tsx +1 -1
  108. package/src/components/Layout/Tickets/styles.tsx +136 -136
  109. package/src/components/LayoutWrapper.tsx +25 -25
  110. package/src/components/LinearProgress.tsx +19 -19
  111. package/src/components/ListItemButton.tsx +95 -95
  112. package/src/components/LoginForm.tsx +105 -105
  113. package/src/components/MediaRow/MediaRow.tsx +69 -69
  114. package/src/components/MediaRow/index.tsx +1 -1
  115. package/src/components/MenuButton.tsx +103 -103
  116. package/src/components/ModalButtons/DialogButton.tsx +88 -88
  117. package/src/components/ModalButtons/DrawerButton.tsx +89 -89
  118. package/src/components/ModalButtons/index.tsx +4 -4
  119. package/src/components/NoDataIllustration/NoDataIllustration.tsx +32 -32
  120. package/src/components/NoDataIllustration/index.tsx +1 -1
  121. package/src/components/PageContent.tsx +17 -17
  122. package/src/components/PageHeader.tsx +52 -52
  123. package/src/components/PageNotFound.tsx +26 -26
  124. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  125. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  126. package/src/components/PopupConfirm/index.tsx +1 -1
  127. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  128. package/src/components/Router.tsx +7 -7
  129. package/src/components/Row/Row.tsx +24 -24
  130. package/src/components/Row/index.tsx +1 -1
  131. package/src/components/SearchBar/SearchBar.tsx +53 -53
  132. package/src/components/SearchBar/index.tsx +1 -1
  133. package/src/components/SideMenuHeader.tsx +29 -29
  134. package/src/components/SideNav.tsx +168 -168
  135. package/src/components/Spinner.tsx +18 -18
  136. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  137. package/src/components/StepsHeader/index.tsx +1 -1
  138. package/src/components/StyledTableContainer.tsx +33 -33
  139. package/src/components/SwitchButton/SwitchButton.tsx +41 -41
  140. package/src/components/SwitchButton/index.tsx +1 -1
  141. package/src/components/Table.tsx +42 -42
  142. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  143. package/src/components/TableComponent/Icons/index.tsx +50 -50
  144. package/src/components/TableComponent/ReactTable.tsx +293 -293
  145. package/src/components/TableComponent/RenderTableBody.tsx +64 -64
  146. package/src/components/TableComponent/TableFooter/TableFooter.tsx +102 -102
  147. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  148. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  149. package/src/components/TableComponent/index.tsx +226 -226
  150. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  151. package/src/components/TableComponent/styles.tsx +173 -173
  152. package/src/components/TableComponent/types.ts +57 -57
  153. package/src/components/Tabs/Tabs.tsx +52 -52
  154. package/src/components/Tabs/TabsContainer.tsx +50 -50
  155. package/src/components/Tabs/index.tsx +1 -1
  156. package/src/components/Tabs/styles.tsx +55 -55
  157. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  158. package/src/components/ToastContainer/index.tsx +1 -1
  159. package/src/components/UploadButton/UploadButton.tsx +126 -126
  160. package/src/components/UploadButton/index.tsx +1 -1
  161. package/src/components/UploadButton/types.ts +19 -19
  162. package/src/components/UploadDocument/UploadDocument.tsx +108 -108
  163. package/src/components/UploadDocument/index.tsx +1 -1
  164. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  165. package/src/components/UploadFileDialog/index.tsx +1 -1
  166. package/src/components/index.ts +86 -86
  167. package/src/config/axios.ts +74 -74
  168. package/src/config/axiosXTenant.ts +57 -57
  169. package/src/constants/UIConstants.ts +97 -97
  170. package/src/constants/formValidations.ts +6 -6
  171. package/src/constants/index.ts +5 -5
  172. package/src/constants/isDevelopment.ts +3 -3
  173. package/src/constants/permissions.ts +67 -67
  174. package/src/constants/validateMessages.ts +12 -12
  175. package/src/contexts/LoginFormProvider.tsx +39 -39
  176. package/src/contexts/Providers.tsx +60 -60
  177. package/src/contexts/PublicProviders.tsx +30 -30
  178. package/src/contexts/QueryClientProvider.tsx +22 -22
  179. package/src/hooks/index.ts +3 -3
  180. package/src/hooks/useAppInit.ts +33 -33
  181. package/src/hooks/useAuth.ts +96 -96
  182. package/src/hooks/useFetch.ts +53 -53
  183. package/src/hooks/useRouter.ts +31 -31
  184. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  185. package/src/layouts/Components/icons/index.tsx +403 -403
  186. package/src/layouts/Components/styles.tsx +60 -60
  187. package/src/layouts/ComponentsLayout.tsx +3 -3
  188. package/src/permissions/PageWithPermission.tsx +18 -18
  189. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  190. package/src/permissions/ValidateAccess.tsx +18 -18
  191. package/src/permissions/index.ts +2 -2
  192. package/src/react-app-env.d.ts +1 -1
  193. package/src/shared-state/AssetsStore.ts +15 -15
  194. package/src/shared-state/PermissionsStore.ts +352 -352
  195. package/src/shared-state/UserStore.ts +13 -13
  196. package/src/shared-state/index.ts +4 -4
  197. package/src/theme/App.less +3 -3
  198. package/src/theme/MuiThemeProvider.tsx +13 -13
  199. package/src/theme/customCssBaseline.ts +78 -78
  200. package/src/theme/index.css +75 -75
  201. package/src/theme/muiTheme.ts +490 -490
  202. package/src/theme/theme.d.ts +75 -75
  203. package/src/utils/alphabet.ts +23 -23
  204. package/src/utils/arrayPadEnd.ts +3 -3
  205. package/src/utils/formatCurrency.ts +9 -9
  206. package/src/utils/getUrlParams.ts +5 -5
  207. package/src/utils/index.ts +8 -8
  208. package/src/utils/logout.ts +24 -24
  209. package/src/utils/ordinalSuffixOf.ts +14 -14
  210. package/src/utils/romanize.ts +40 -40
  211. package/src/utils/withLocalization.tsx +11 -11
  212. package/src/utils/withRouteWrapper.tsx +25 -25
  213. package/src/utils/withSuspense.tsx +6 -6
  214. package/styled-components.tsx +60 -60
  215. package/tsconfig.json +21 -21
@@ -1,98 +1,98 @@
1
- import {
2
- alpha,
3
- AppBar,
4
- Box,
5
- IconButton,
6
- ListItemText,
7
- styled,
8
- Typography,
9
- Link,
10
- } from '@mui/material'
11
-
12
- export const StyledImageWrapper = styled('div')`
13
- width: auto;
14
- height: 24px;
15
- & img {
16
- width: 100%;
17
- height: 100%;
18
- object-fit: contain;
19
- }
20
- `
21
-
22
- export const StyledItemText = styled(ListItemText)(({ theme }) => ({
23
- color: theme.palette.text.primary,
24
- transition: '0.2s ease',
25
- }))
26
-
27
- export const StyledAppBar = styled(AppBar)(({ theme }) => ({
28
- backgroundColor: 'white',
29
- boxShadow: '0px 8px 28px rgb(136,136,136, 0.3)',
30
- }))
31
-
32
- export const StyledHeader = styled(Box)(({ theme }) => ({
33
- boxShadow: '0px 2px 10px #0000001a',
34
- backgroundColor: 'white',
35
- display: 'flex',
36
- alignItems: 'center',
37
- justifyContent: 'space-between',
38
- '& .actions': {
39
- marginRight: '10px',
40
- display: 'flex',
41
- alignItems: 'center',
42
- gap: '14px',
43
- },
44
- }))
45
-
46
- export const StyledUser = styled(Box)(({ theme }) => ({
47
- cursor: 'pointer',
48
- borderRadius: '5px',
49
- transition: 'background 0.2s ease',
50
- padding: '5px 16px',
51
- display: 'flex',
52
- alignItems: 'center',
53
- gap: '8px',
54
- '&:hover': {
55
- background: theme.palette.secondary.light,
56
- },
57
- }))
58
-
59
- export const StyledIconButton = styled(IconButton)({
60
- padding: '20px',
61
- backgroundColor: 'black',
62
- display: 'flex',
63
- alignItems: 'center',
64
- justifyContent: 'center',
65
- borderRadius: '0px',
66
- })
67
-
68
- export const StyledLink = styled(Link)({
69
- textDecoration: 'none',
70
- })
71
-
72
- export const StyledDescription = styled(Typography)(({ theme }) => ({
73
- fontSize: '12px',
74
- fontWeight: 600,
75
- color: alpha(theme?.palette?.secondary?.lighter, 0.5),
76
- }))
77
-
78
- export const StyledMenuItem = styled(Box)({
79
- height: '64px',
80
- width: '380px',
81
- padding: '40px 20px',
82
- transition: 'background ease 0.3s',
83
- '&:hover': {
84
- background: 'rgba(0, 0, 0, 0.03)',
85
- },
86
- display: 'flex',
87
- alignItems: 'center',
88
- gap: '20px',
89
- })
90
-
91
- export const StyledMenuItemContainer = styled(Box)(({ theme }) => ({
92
- cursor: 'pointer',
93
- borderBottom: `1px solid ${theme?.palette?.secondary?.lighter}`,
94
- '&:last-of-type': {
95
- border: 'none',
96
- },
97
- padding: '8px 0px',
98
- }))
1
+ import {
2
+ alpha,
3
+ AppBar,
4
+ Box,
5
+ IconButton,
6
+ ListItemText,
7
+ styled,
8
+ Typography,
9
+ Link,
10
+ } from '@mui/material'
11
+
12
+ export const StyledImageWrapper = styled('div')`
13
+ width: auto;
14
+ height: 24px;
15
+ & img {
16
+ width: 100%;
17
+ height: 100%;
18
+ object-fit: contain;
19
+ }
20
+ `
21
+
22
+ export const StyledItemText = styled(ListItemText)(({ theme }) => ({
23
+ color: theme.palette.text.primary,
24
+ transition: '0.2s ease',
25
+ }))
26
+
27
+ export const StyledAppBar = styled(AppBar)(({ theme }) => ({
28
+ backgroundColor: 'white',
29
+ boxShadow: '0px 8px 28px rgb(136,136,136, 0.3)',
30
+ }))
31
+
32
+ export const StyledHeader = styled(Box)(({ theme }) => ({
33
+ boxShadow: '0px 2px 10px #0000001a',
34
+ backgroundColor: 'white',
35
+ display: 'flex',
36
+ alignItems: 'center',
37
+ justifyContent: 'space-between',
38
+ '& .actions': {
39
+ marginRight: '10px',
40
+ display: 'flex',
41
+ alignItems: 'center',
42
+ gap: '14px',
43
+ },
44
+ }))
45
+
46
+ export const StyledUser = styled(Box)(({ theme }) => ({
47
+ cursor: 'pointer',
48
+ borderRadius: '5px',
49
+ transition: 'background 0.2s ease',
50
+ padding: '5px 16px',
51
+ display: 'flex',
52
+ alignItems: 'center',
53
+ gap: '8px',
54
+ '&:hover': {
55
+ background: theme.palette.secondary.light,
56
+ },
57
+ }))
58
+
59
+ export const StyledIconButton = styled(IconButton)({
60
+ padding: '20px',
61
+ backgroundColor: 'black',
62
+ display: 'flex',
63
+ alignItems: 'center',
64
+ justifyContent: 'center',
65
+ borderRadius: '0px',
66
+ })
67
+
68
+ export const StyledLink = styled(Link)({
69
+ textDecoration: 'none',
70
+ })
71
+
72
+ export const StyledDescription = styled(Typography)(({ theme }) => ({
73
+ fontSize: '12px',
74
+ fontWeight: 600,
75
+ color: alpha(theme?.palette?.secondary?.lighter, 0.5),
76
+ }))
77
+
78
+ export const StyledMenuItem = styled(Box)({
79
+ height: '64px',
80
+ width: '380px',
81
+ padding: '40px 20px',
82
+ transition: 'background ease 0.3s',
83
+ '&:hover': {
84
+ background: 'rgba(0, 0, 0, 0.03)',
85
+ },
86
+ display: 'flex',
87
+ alignItems: 'center',
88
+ gap: '20px',
89
+ })
90
+
91
+ export const StyledMenuItemContainer = styled(Box)(({ theme }) => ({
92
+ cursor: 'pointer',
93
+ borderBottom: `1px solid ${theme?.palette?.secondary?.lighter}`,
94
+ '&:last-of-type': {
95
+ border: 'none',
96
+ },
97
+ padding: '8px 0px',
98
+ }))
@@ -1,74 +1,76 @@
1
- import { Box, Typography } from '@mui/material'
2
- import moment from 'moment'
3
- import { useState } from 'react'
4
- import { useQuery } from 'react-query'
5
- import axios from '../../../config/axios'
6
- import Spinner from '../../Spinner'
7
- // import { getImage } from './Services'
8
- import { StyledCardData, StyledLeftContainer, StyledListItem } from './styles'
9
- import TicketDetails from './TicketDetails'
10
-
11
- function MyTickets() {
12
- const [currentTicket, setCurrentTicket] = useState(null)
13
- const { data, isLoading } = useQuery<any>('tickets', () =>
14
- axios.get('/service-tickets/my-tickets').then((res) => res.data.result),
15
- )
16
- // const { data: imageData } = useQuery('imageData', () => getImage(data))
17
- if (isLoading) return <Spinner />
18
- return (
19
- <Box sx={{ display: 'flex', gap: '20px' }}>
20
- <Box sx={{ margin: '10px', borderRadius: '10px' }}>
21
- <StyledLeftContainer>
22
- {data?.map((item) => (
23
- <TicketListItem
24
- key={item}
25
- data={item}
26
- setCurrentTicket={setCurrentTicket}
27
- currentTicket={currentTicket}
28
- />
29
- ))}
30
- </StyledLeftContainer>
31
- </Box>
32
- {currentTicket?._id ? (
33
- <TicketDetails data={currentTicket} id={currentTicket._id} />
34
- ) : (
35
- ''
36
- )}
37
- </Box>
38
- )
39
- }
40
-
41
- export default MyTickets
42
-
43
- const TicketListItem = ({ data, setCurrentTicket, currentTicket }) => {
44
- return (
45
- <StyledListItem
46
- isActive={currentTicket?._id === data?._id ? true : false}
47
- onClick={() => {
48
- // set selected ticket data
49
- setCurrentTicket(data)
50
- }}
51
- >
52
- <Box
53
- sx={{
54
- width: '400px',
55
- display: 'flex',
56
- }}
57
- >
58
- <Box className="left">
59
- <Typography variant="body2">{data?.name}</Typography>
60
- <Typography variant="subtitle2">
61
- {moment(data?.createdAt).format('DD MMMM, YYYY hh:mm: a')}
62
- </Typography>
63
- </Box>
64
- <Box className="right">
65
- <StyledCardData>
66
- <Typography variant="h5" sx={{ fontSize: '9px' }}>
67
- {data?.status.replace('_', ' ')}
68
- </Typography>
69
- </StyledCardData>
70
- </Box>
71
- </Box>
72
- </StyledListItem>
73
- )
74
- }
1
+ import { Box, Typography } from '@mui/material'
2
+ import moment from 'moment'
3
+ import { useState } from 'react'
4
+ import { useQuery } from 'react-query'
5
+ import axios from '../../../config/axios'
6
+ import Spinner from '../../Spinner'
7
+ // import { getImage } from './Services'
8
+ import { StyledCardData, StyledLeftContainer, StyledListItem } from './styles'
9
+ import TicketDetails from './TicketDetails'
10
+
11
+ function MyTickets() {
12
+ const [currentTicket, setCurrentTicket] = useState(null)
13
+ const { data, isLoading } = useQuery<any>('tickets', () =>
14
+ axios
15
+ .get('/square/service-tickets/my-tickets')
16
+ .then((res) => res.data.result),
17
+ )
18
+ // const { data: imageData } = useQuery('imageData', () => getImage(data))
19
+ if (isLoading) return <Spinner />
20
+ return (
21
+ <Box sx={{ display: 'flex', gap: '20px' }}>
22
+ <Box sx={{ margin: '10px', borderRadius: '10px' }}>
23
+ <StyledLeftContainer>
24
+ {data?.map((item) => (
25
+ <TicketListItem
26
+ key={item}
27
+ data={item}
28
+ setCurrentTicket={setCurrentTicket}
29
+ currentTicket={currentTicket}
30
+ />
31
+ ))}
32
+ </StyledLeftContainer>
33
+ </Box>
34
+ {currentTicket?._id ? (
35
+ <TicketDetails data={currentTicket} id={currentTicket._id} />
36
+ ) : (
37
+ ''
38
+ )}
39
+ </Box>
40
+ )
41
+ }
42
+
43
+ export default MyTickets
44
+
45
+ const TicketListItem = ({ data, setCurrentTicket, currentTicket }) => {
46
+ return (
47
+ <StyledListItem
48
+ isActive={currentTicket?._id === data?._id ? true : false}
49
+ onClick={() => {
50
+ // set selected ticket data
51
+ setCurrentTicket(data)
52
+ }}
53
+ >
54
+ <Box
55
+ sx={{
56
+ width: '400px',
57
+ display: 'flex',
58
+ }}
59
+ >
60
+ <Box className="left">
61
+ <Typography variant="body2">{data?.name}</Typography>
62
+ <Typography variant="subtitle2">
63
+ {moment(data?.createdAt).format('DD MMMM, YYYY hh:mm: a')}
64
+ </Typography>
65
+ </Box>
66
+ <Box className="right">
67
+ <StyledCardData>
68
+ <Typography variant="h5" sx={{ fontSize: '9px' }}>
69
+ {data?.status.replace('_', ' ')}
70
+ </Typography>
71
+ </StyledCardData>
72
+ </Box>
73
+ </Box>
74
+ </StyledListItem>
75
+ )
76
+ }
@@ -1,6 +1,6 @@
1
- import axios from '../../../config/axios'
2
-
3
- export const getImage = async (id: string) => {
4
- let imageData = await axios.get(`/service-tickets/${id}`)
5
- return imageData?.data
6
- }
1
+ import axios from '../../../config/axios'
2
+
3
+ export const getImage = async (id: string) => {
4
+ let imageData = await axios.get(`/square/service-tickets/${id}`)
5
+ return imageData?.data
6
+ }
@@ -1,66 +1,66 @@
1
- /* eslint-disable react/jsx-key */
2
- import { Box, Card, Stack, Typography } from '@mui/material'
3
- import axios from 'axios'
4
- import moment from 'moment'
5
- import { useQuery } from 'react-query'
6
- import { getImage } from './Services'
7
- import { StyledBoxDetails, StyledCardData } from './styles'
8
- import StyledTimeLine from './TimeLine'
9
- // export const getImage = async (id: string) => {
10
- // let imgData = await axios.get(`/service-tickets/${id}`)
11
- // return imgData?.data
12
- // }
13
- function TicketDetails({ data, id }) {
14
- const { data: imageData } = useQuery(['imageData', id], () => getImage(id))
15
- console.log(imageData, 'imagedata')
16
- return (
17
- <Box>
18
- {data ? (
19
- <Card
20
- sx={{
21
- marginTop: '20px',
22
- }}
23
- >
24
- <StyledBoxDetails>
25
- <Box>
26
- <Typography variant="h5">{data?.name}</Typography>
27
- <Typography variant="subtitle2" sx={{ marginTop: '5px' }}>
28
- {moment(data?.createdAt).format('DD MMMM, YYYY hh:mm: a') ??
29
- ' '}
30
- </Typography>
31
- <Typography
32
- sx={{ marginTop: '20px', maxWidth: '500px', fontSize: '14px' }}
33
- >
34
- {data?.description}
35
- </Typography>
36
- <Stack direction={'column'} gap="20px" sx={{ marginTop: '10px' }}>
37
- {imageData?.issueFiles?.map((item) => (
38
- <img src={item?.url} height={'100px'} width={'200px'} />
39
- ))}
40
- </Stack>
41
- </Box>
42
- <StyledCardData
43
- sx={{
44
- marginRight: '10px',
45
- }}
46
- >
47
- <Typography variant="h5" sx={{ fontSize: '10px' }}>
48
- {data.status.replace('_', ' ')}
49
- </Typography>
50
- </StyledCardData>
51
- </StyledBoxDetails>
52
- </Card>
53
- ) : (
54
- ''
55
- )}
56
- <Box sx={{ marginTop: '30px', marginBottom: '30px' }}>
57
- <Typography variant="h1" sx={{ marginBottom: '10px' }}>
58
- {data?.timelineLogs ? 'Ticket Timeline' : ''}
59
- </Typography>
60
- <StyledTimeLine data={data?.timelineLogs} />
61
- </Box>
62
- </Box>
63
- )
64
- }
65
-
66
- export default TicketDetails
1
+ /* eslint-disable react/jsx-key */
2
+ import { Box, Card, Stack, Typography } from '@mui/material'
3
+ import axios from 'axios'
4
+ import moment from 'moment'
5
+ import { useQuery } from 'react-query'
6
+ import { getImage } from './Services'
7
+ import { StyledBoxDetails, StyledCardData } from './styles'
8
+ import StyledTimeLine from './TimeLine'
9
+ // export const getImage = async (id: string) => {
10
+ // let imgData = await axios.get(`/service-tickets/${id}`)
11
+ // return imgData?.data
12
+ // }
13
+ function TicketDetails({ data, id }) {
14
+ const { data: imageData } = useQuery(['imageData', id], () => getImage(id))
15
+ console.log(imageData, 'imagedata')
16
+ return (
17
+ <Box>
18
+ {data ? (
19
+ <Card
20
+ sx={{
21
+ marginTop: '20px',
22
+ }}
23
+ >
24
+ <StyledBoxDetails>
25
+ <Box>
26
+ <Typography variant="h5">{data?.name}</Typography>
27
+ <Typography variant="subtitle2" sx={{ marginTop: '5px' }}>
28
+ {moment(data?.createdAt).format('DD MMMM, YYYY hh:mm: a') ??
29
+ ' '}
30
+ </Typography>
31
+ <Typography
32
+ sx={{ marginTop: '20px', maxWidth: '500px', fontSize: '14px' }}
33
+ >
34
+ {data?.description}
35
+ </Typography>
36
+ <Stack direction={'column'} gap="20px" sx={{ marginTop: '10px' }}>
37
+ {imageData?.issueFiles?.map((item) => (
38
+ <img src={item?.url} height={'100px'} width={'200px'} />
39
+ ))}
40
+ </Stack>
41
+ </Box>
42
+ <StyledCardData
43
+ sx={{
44
+ marginRight: '10px',
45
+ }}
46
+ >
47
+ <Typography variant="h5" sx={{ fontSize: '10px' }}>
48
+ {data.status.replace('_', ' ')}
49
+ </Typography>
50
+ </StyledCardData>
51
+ </StyledBoxDetails>
52
+ </Card>
53
+ ) : (
54
+ ''
55
+ )}
56
+ <Box sx={{ marginTop: '30px', marginBottom: '30px' }}>
57
+ <Typography variant="h1" sx={{ marginBottom: '10px' }}>
58
+ {data?.timelineLogs ? 'Ticket Timeline' : ''}
59
+ </Typography>
60
+ <StyledTimeLine data={data?.timelineLogs} />
61
+ </Box>
62
+ </Box>
63
+ )
64
+ }
65
+
66
+ export default TicketDetails
@@ -1,64 +1,64 @@
1
- /* eslint-disable react/jsx-key */
2
- import moment from 'moment'
3
- import { Typography } from '@mui/material'
4
- import {
5
- TimelineSeparator,
6
- TimelineConnector,
7
- TimelineDot,
8
- TimelineContent,
9
- } from '@mui/lab'
10
- import { StyledTimelineBox, StyledTimeLineItem } from './styles'
11
-
12
- interface TimelineComponentProps {
13
- data: any
14
- }
15
-
16
- function StyledTimeLine({ data }: TimelineComponentProps) {
17
- return data?.map((item, index) => (
18
- <StyledTimeLineItem key={index}>
19
- <TimelineSeparator>
20
- <TimelineDot
21
- variant="outlined"
22
- sx={{ width: '20px', height: '20px' }}
23
- />
24
- {!(index === data.length - 1) ? <TimelineConnector /> : ''}
25
- </TimelineSeparator>
26
- <TimelineContent>
27
- <Typography variant="h6">{item?.message}</Typography>
28
- <Typography sx={{ marginTop: '10px' }}>
29
- {moment(item?.createdAt).format(' h:mmA Do MMMM YYYY, ')}
30
- </Typography>
31
- <RenderContent timeLog={item} />
32
- </TimelineContent>
33
- </StyledTimeLineItem>
34
- ))
35
- }
36
- export default StyledTimeLine
37
-
38
- const RenderContent = ({ timeLog }) => {
39
- if (timeLog?.files) {
40
- return (
41
- <StyledTimelineBox>
42
- <Typography sx={{ marginBottom: '3px' }}>{timeLog?.notes}</Typography>
43
- {/* {timeLog?.files?.map((item) => (
44
- <img src={item?.url} height={'100px'} width={'200px'} />
45
- ))} */}
46
- </StyledTimelineBox>
47
- )
48
- }
49
-
50
- if (timeLog?.notes) {
51
- return (
52
- <StyledTimelineBox
53
- sx={{
54
- maxWidth: '400px',
55
- }}
56
- >
57
- <Typography sx={{ wordWrap: 'break-word' }}>
58
- {timeLog?.notes}
59
- </Typography>
60
- </StyledTimelineBox>
61
- )
62
- }
63
- return <></>
64
- }
1
+ /* eslint-disable react/jsx-key */
2
+ import moment from 'moment'
3
+ import { Typography } from '@mui/material'
4
+ import {
5
+ TimelineSeparator,
6
+ TimelineConnector,
7
+ TimelineDot,
8
+ TimelineContent,
9
+ } from '@mui/lab'
10
+ import { StyledTimelineBox, StyledTimeLineItem } from './styles'
11
+
12
+ interface TimelineComponentProps {
13
+ data: any
14
+ }
15
+
16
+ function StyledTimeLine({ data }: TimelineComponentProps) {
17
+ return data?.map((item, index) => (
18
+ <StyledTimeLineItem key={index}>
19
+ <TimelineSeparator>
20
+ <TimelineDot
21
+ variant="outlined"
22
+ sx={{ width: '20px', height: '20px' }}
23
+ />
24
+ {!(index === data.length - 1) ? <TimelineConnector /> : ''}
25
+ </TimelineSeparator>
26
+ <TimelineContent>
27
+ <Typography variant="h6">{item?.message}</Typography>
28
+ <Typography sx={{ marginTop: '10px' }}>
29
+ {moment(item?.createdAt).format(' h:mmA Do MMMM YYYY, ')}
30
+ </Typography>
31
+ <RenderContent timeLog={item} />
32
+ </TimelineContent>
33
+ </StyledTimeLineItem>
34
+ ))
35
+ }
36
+ export default StyledTimeLine
37
+
38
+ const RenderContent = ({ timeLog }) => {
39
+ if (timeLog?.files) {
40
+ return (
41
+ <StyledTimelineBox>
42
+ <Typography sx={{ marginBottom: '3px' }}>{timeLog?.notes}</Typography>
43
+ {/* {timeLog?.files?.map((item) => (
44
+ <img src={item?.url} height={'100px'} width={'200px'} />
45
+ ))} */}
46
+ </StyledTimelineBox>
47
+ )
48
+ }
49
+
50
+ if (timeLog?.notes) {
51
+ return (
52
+ <StyledTimelineBox
53
+ sx={{
54
+ maxWidth: '400px',
55
+ }}
56
+ >
57
+ <Typography sx={{ wordWrap: 'break-word' }}>
58
+ {timeLog?.notes}
59
+ </Typography>
60
+ </StyledTimelineBox>
61
+ )
62
+ }
63
+ return <></>
64
+ }
@@ -1 +1 @@
1
- export { default } from './MyTickets'
1
+ export { default } from './MyTickets'