agx-chat-web 1.1.0 → 1.2.1
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.
- package/README.md +49 -49
- package/dist/agx-chat.esm.js +1 -1
- package/dist/agx-chat.esm.js.map +1 -1
- package/dist/{agx-chat.min.js → agx-chat.umd.js} +2 -2
- package/dist/agx-chat.umd.js.map +1 -0
- package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js +7 -3
- package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js.map +1 -1
- package/dist/esm/app/Messenger/components/InputFile/InputFile.js +3 -1
- package/dist/esm/app/Messenger/components/InputFile/InputFile.js.map +1 -1
- package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.js +8 -0
- package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.js.map +1 -1
- package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.js +30 -8
- package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.js.map +1 -1
- package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js +11 -8
- package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js.map +1 -1
- package/dist/esm/app/Messenger/icons/CSVFileIcon.d.ts +4 -0
- package/dist/esm/app/Messenger/icons/CSVFileIcon.js +7 -0
- package/dist/esm/app/Messenger/icons/CSVFileIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/MP4FileIcon.d.ts +4 -0
- package/dist/esm/app/Messenger/icons/MP4FileIcon.js +7 -0
- package/dist/esm/app/Messenger/icons/MP4FileIcon.js.map +1 -0
- package/package.json +91 -91
- package/src/__tests__/app/Messenger/classes/slaCalculations.spec.ts +122 -122
- package/src/app/ChatProvider/ChatProvider.tsx +20 -20
- package/src/app/Messenger/classes/slaCalculations.ts +197 -197
- package/src/app/Messenger/components/ChatButton/ChatButton.tsx +64 -64
- package/src/app/Messenger/components/ChatTabs/ChatTabs.less +18 -18
- package/src/app/Messenger/components/ChatTabs/ChatTabs.tsx +32 -32
- package/src/app/Messenger/components/DocMessage/DocMessage.less +71 -71
- package/src/app/Messenger/components/DocMessage/DocMessage.tsx +50 -50
- package/src/app/Messenger/components/ImagesContainer/ImagesContainer.less +79 -79
- package/src/app/Messenger/components/ImagesContainer/ImagesContainer.tsx +51 -51
- package/src/app/Messenger/components/IncomingMessage/IncomingMessage.tsx +170 -166
- package/src/app/Messenger/components/InfiniteScroll/InfiniteScroll.tsx +80 -80
- package/src/app/Messenger/components/InputFile/InputFile.tsx +147 -145
- package/src/app/Messenger/components/InputFile/inputFile.less +59 -59
- package/src/app/Messenger/components/MessageBallon/MessageBalloon.tsx +100 -100
- package/src/app/Messenger/components/MessengerAvatar/MessengerAvatar.tsx +29 -29
- package/src/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.tsx +62 -62
- package/src/app/Messenger/components/RenderFileIcon/RenderFileIcon.tsx +40 -34
- package/src/app/Messenger/components/SearchInput/SearchInput.less +45 -45
- package/src/app/Messenger/components/SearchInput/SearchInput.tsx +77 -77
- package/src/app/Messenger/components/Select/Select.less +22 -22
- package/src/app/Messenger/components/Select/Select.tsx +56 -56
- package/src/app/Messenger/components/SendMessageForm/SendMessageForm.tsx +254 -234
- package/src/app/Messenger/components/SenderMessages/SenderMessages.tsx +91 -89
- package/src/app/Messenger/components/SystemMessage/SystemMessage.tsx +25 -25
- package/src/app/Messenger/components/TextArea/TextArea.tsx +35 -35
- package/src/app/Messenger/components/TextArea/Textarea.less +22 -22
- package/src/app/Messenger/components/Tooltip/Tooltip.less +27 -27
- package/src/app/Messenger/components/Tooltip/Tooltip.tsx +17 -17
- package/src/app/Messenger/hooks/useConversations.tsx +143 -143
- package/src/app/Messenger/hooks/useMessages.tsx +49 -49
- package/src/app/Messenger/hooks/useThemes.tsx +14 -14
- package/src/app/Messenger/icons/AttachFileIcon.tsx +20 -20
- package/src/app/Messenger/icons/CSVFileIcon.tsx +26 -0
- package/src/app/Messenger/icons/CloseIcon.tsx +20 -20
- package/src/app/Messenger/icons/DOCFileIcon.tsx +54 -54
- package/src/app/Messenger/icons/DownloadMinimalistIcon.tsx +37 -37
- package/src/app/Messenger/icons/EmptyIcon.tsx +20 -20
- package/src/app/Messenger/icons/MP4FileIcon.tsx +26 -0
- package/src/app/Messenger/icons/MessageIcon.tsx +27 -27
- package/src/app/Messenger/icons/PDFFileIcon.tsx +54 -54
- package/src/app/Messenger/icons/ReadIcon.tsx +18 -18
- package/src/app/Messenger/icons/SearchIcon.tsx +20 -20
- package/src/app/Messenger/icons/TimerIcon.tsx +18 -18
- package/src/app/Messenger/icons/TrashIcon.tsx +21 -21
- package/src/app/Messenger/views/Messenger.less +623 -623
- package/src/app/Messenger/views/MessengerList.tsx +170 -170
- package/src/app/Messenger/views/MessengerListItem.tsx +178 -178
- package/src/app/Messenger/views/MessengerMessages.tsx +414 -414
- package/src/app/Messenger/views/NewFormChat.tsx +145 -145
- package/src/app/i18n/index.ts +36 -36
- package/src/app/i18n/locales/en.json +64 -64
- package/src/app/i18n/locales/pt.json +64 -64
- package/src/assets/right-arrow.svg +9 -9
- package/src/index.ts +23 -23
- package/src/react-app-env.d.ts +19 -19
- package/src/setupTests.ts +5 -5
- package/src/styles/abstracts/animations.less +8 -8
- package/src/styles/abstracts/mixins.less +5 -5
- package/src/styles/abstracts/variables.less +31 -31
- package/src/styles/base/base.less +6 -6
- package/src/styles/index.less +5 -5
- package/src/types.ts +174 -174
- package/dist/agx-chat.min.js.map +0 -1
package/src/index.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import './styles/index.less'
|
|
2
|
-
|
|
3
|
-
import MessengerList from './app/Messenger/views/MessengerList'
|
|
4
|
-
import MessengerMessages from './app/Messenger/views/MessengerMessages'
|
|
5
|
-
import MessengerListItem from './app/Messenger/views/MessengerListItem'
|
|
6
|
-
import MessengerThemeWrapper from './app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper'
|
|
7
|
-
import NewChatButton from './app/Messenger/components/ChatButton/ChatButton'
|
|
8
|
-
import { useConversations } from './app/Messenger/hooks/useConversations'
|
|
9
|
-
import { useMessages } from './app/Messenger/hooks/useMessages'
|
|
10
|
-
import { setLanguage } from './app/i18n'
|
|
11
|
-
import ChatProvider from './app/ChatProvider/ChatProvider'
|
|
12
|
-
|
|
13
|
-
export {
|
|
14
|
-
MessengerList,
|
|
15
|
-
MessengerMessages,
|
|
16
|
-
MessengerListItem,
|
|
17
|
-
MessengerThemeWrapper,
|
|
18
|
-
NewChatButton,
|
|
19
|
-
useConversations,
|
|
20
|
-
useMessages,
|
|
21
|
-
setLanguage,
|
|
22
|
-
ChatProvider,
|
|
23
|
-
}
|
|
1
|
+
import './styles/index.less'
|
|
2
|
+
|
|
3
|
+
import MessengerList from './app/Messenger/views/MessengerList'
|
|
4
|
+
import MessengerMessages from './app/Messenger/views/MessengerMessages'
|
|
5
|
+
import MessengerListItem from './app/Messenger/views/MessengerListItem'
|
|
6
|
+
import MessengerThemeWrapper from './app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper'
|
|
7
|
+
import NewChatButton from './app/Messenger/components/ChatButton/ChatButton'
|
|
8
|
+
import { useConversations } from './app/Messenger/hooks/useConversations'
|
|
9
|
+
import { useMessages } from './app/Messenger/hooks/useMessages'
|
|
10
|
+
import { setLanguage } from './app/i18n'
|
|
11
|
+
import ChatProvider from './app/ChatProvider/ChatProvider'
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
MessengerList,
|
|
15
|
+
MessengerMessages,
|
|
16
|
+
MessengerListItem,
|
|
17
|
+
MessengerThemeWrapper,
|
|
18
|
+
NewChatButton,
|
|
19
|
+
useConversations,
|
|
20
|
+
useMessages,
|
|
21
|
+
setLanguage,
|
|
22
|
+
ChatProvider,
|
|
23
|
+
}
|
package/src/react-app-env.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
-
|
|
4
|
-
/// <reference types="react-scripts" />
|
|
5
|
-
|
|
6
|
-
declare module '*.module.less' {
|
|
7
|
-
const classes: { [key: string]: string }
|
|
8
|
-
export default classes
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
declare module '*.svg' {
|
|
12
|
-
const content: string
|
|
13
|
-
export default content
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
declare module '*.json' {
|
|
17
|
-
const value: any
|
|
18
|
-
export default value
|
|
19
|
-
}
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
|
|
4
|
+
/// <reference types="react-scripts" />
|
|
5
|
+
|
|
6
|
+
declare module '*.module.less' {
|
|
7
|
+
const classes: { [key: string]: string }
|
|
8
|
+
export default classes
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
declare module '*.svg' {
|
|
12
|
+
const content: string
|
|
13
|
+
export default content
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare module '*.json' {
|
|
17
|
+
const value: any
|
|
18
|
+
export default value
|
|
19
|
+
}
|
package/src/setupTests.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
|
2
|
-
// allows you to do things like:
|
|
3
|
-
// expect(element).toHaveTextContent(/react/i)
|
|
4
|
-
// learn more: https://github.com/testing-library/jest-dom
|
|
5
|
-
import '@testing-library/jest-dom'
|
|
1
|
+
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
|
2
|
+
// allows you to do things like:
|
|
3
|
+
// expect(element).toHaveTextContent(/react/i)
|
|
4
|
+
// learn more: https://github.com/testing-library/jest-dom
|
|
5
|
+
import '@testing-library/jest-dom'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
@keyframes spin {
|
|
2
|
-
0% {
|
|
3
|
-
transform: rotate(0deg);
|
|
4
|
-
}
|
|
5
|
-
100% {
|
|
6
|
-
transform: rotate(360deg);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
1
|
+
@keyframes spin {
|
|
2
|
+
0% {
|
|
3
|
+
transform: rotate(0deg);
|
|
4
|
+
}
|
|
5
|
+
100% {
|
|
6
|
+
transform: rotate(360deg);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
.flex-full-center() {
|
|
2
|
-
display: flex;
|
|
3
|
-
align-items: center;
|
|
4
|
-
justify-content: center;
|
|
5
|
-
}
|
|
1
|
+
.flex-full-center() {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
// ANTD MEDIA QUERIES
|
|
2
|
-
@phone-xs: ~'only screen and (max-width: 480px)';
|
|
3
|
-
@phone-sm: ~'only screen and (max-width: 576px)';
|
|
4
|
-
@tab-md: ~'only screen and (max-width: 768px)';
|
|
5
|
-
@tab-lg: ~'only screen and (max-width: 992px)';
|
|
6
|
-
@tab-lg-min: ~'only screen and (min-width: 992px)';
|
|
7
|
-
@tab-xl: ~'only screen and (max-width: 1200px)';
|
|
8
|
-
|
|
9
|
-
// [1200 - 1600] - normal style //
|
|
10
|
-
@desktop-xxl: ~'only screen and (min-width: 1600px)';
|
|
11
|
-
|
|
12
|
-
@grey-1: #94989d;
|
|
13
|
-
@grey-2: #707070;
|
|
14
|
-
@border-color: #aaaaaa;
|
|
15
|
-
@messenger-primary-color: #00a73e;
|
|
16
|
-
@messenger-messages-bg: #eeeeee;
|
|
17
|
-
@secondary-bg-color-chat: #484c52;
|
|
18
|
-
@card-background: #dddddd;
|
|
19
|
-
@upload-file-icon-color: #8696a0;
|
|
20
|
-
@border-radius: 20px;
|
|
21
|
-
@body-background: blue;
|
|
22
|
-
@component-background: #232831;
|
|
23
|
-
@full-content-height: calc(100vh - 23px);
|
|
24
|
-
@title-form-color: #476077;
|
|
25
|
-
@border-radius: 20px;
|
|
26
|
-
@document-message-bg: #34c759;
|
|
27
|
-
@text-color-white: #ffffff;
|
|
28
|
-
|
|
29
|
-
:root {
|
|
30
|
-
--secondary-color: var(--secondary-color);
|
|
31
|
-
}
|
|
1
|
+
// ANTD MEDIA QUERIES
|
|
2
|
+
@phone-xs: ~'only screen and (max-width: 480px)';
|
|
3
|
+
@phone-sm: ~'only screen and (max-width: 576px)';
|
|
4
|
+
@tab-md: ~'only screen and (max-width: 768px)';
|
|
5
|
+
@tab-lg: ~'only screen and (max-width: 992px)';
|
|
6
|
+
@tab-lg-min: ~'only screen and (min-width: 992px)';
|
|
7
|
+
@tab-xl: ~'only screen and (max-width: 1200px)';
|
|
8
|
+
|
|
9
|
+
// [1200 - 1600] - normal style //
|
|
10
|
+
@desktop-xxl: ~'only screen and (min-width: 1600px)';
|
|
11
|
+
|
|
12
|
+
@grey-1: #94989d;
|
|
13
|
+
@grey-2: #707070;
|
|
14
|
+
@border-color: #aaaaaa;
|
|
15
|
+
@messenger-primary-color: #00a73e;
|
|
16
|
+
@messenger-messages-bg: #eeeeee;
|
|
17
|
+
@secondary-bg-color-chat: #484c52;
|
|
18
|
+
@card-background: #dddddd;
|
|
19
|
+
@upload-file-icon-color: #8696a0;
|
|
20
|
+
@border-radius: 20px;
|
|
21
|
+
@body-background: blue;
|
|
22
|
+
@component-background: #232831;
|
|
23
|
+
@full-content-height: calc(100vh - 23px);
|
|
24
|
+
@title-form-color: #476077;
|
|
25
|
+
@border-radius: 20px;
|
|
26
|
+
@document-message-bg: #34c759;
|
|
27
|
+
@text-color-white: #ffffff;
|
|
28
|
+
|
|
29
|
+
:root {
|
|
30
|
+
--secondary-color: var(--secondary-color);
|
|
31
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
*,
|
|
2
|
-
::after,
|
|
3
|
-
::before {
|
|
4
|
-
padding: 0;
|
|
5
|
-
margin: 0;
|
|
6
|
-
}
|
|
1
|
+
*,
|
|
2
|
+
::after,
|
|
3
|
+
::before {
|
|
4
|
+
padding: 0;
|
|
5
|
+
margin: 0;
|
|
6
|
+
}
|
package/src/styles/index.less
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@import '../app/Messenger/views/Messenger.less';
|
|
2
|
-
@import './base/base.less';
|
|
3
|
-
@import './abstracts/variables';
|
|
4
|
-
@import './abstracts/mixins';
|
|
5
|
-
@import './abstracts/animations';
|
|
1
|
+
@import '../app/Messenger/views/Messenger.less';
|
|
2
|
+
@import './base/base.less';
|
|
3
|
+
@import './abstracts/variables';
|
|
4
|
+
@import './abstracts/mixins';
|
|
5
|
+
@import './abstracts/animations';
|
package/src/types.ts
CHANGED
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
export type _chatNature = 'helpdesk' | 'communication' | 'proposal' | ''
|
|
3
|
-
|
|
4
|
-
interface IChatUsers {
|
|
5
|
-
applicationId: string
|
|
6
|
-
createdAt: string
|
|
7
|
-
image?: string
|
|
8
|
-
ticketAdmin: boolean
|
|
9
|
-
uniqueCode: string
|
|
10
|
-
updatedAt: string
|
|
11
|
-
username: string
|
|
12
|
-
_id: string
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
interface IList {
|
|
16
|
-
applicationId: string
|
|
17
|
-
creator: Omit<IChatUsers, '_id'>
|
|
18
|
-
creatorId: string
|
|
19
|
-
nature: _chatNature
|
|
20
|
-
protocol: string
|
|
21
|
-
reason?: string
|
|
22
|
-
subject?: string
|
|
23
|
-
createdAt: Date
|
|
24
|
-
uniqueCode: string
|
|
25
|
-
updatedAt: string
|
|
26
|
-
userIdList: string[]
|
|
27
|
-
totalUnreadMessages: number
|
|
28
|
-
SLATimePassed: number
|
|
29
|
-
users: IChatUsers[]
|
|
30
|
-
status: {
|
|
31
|
-
current: {
|
|
32
|
-
state: string
|
|
33
|
-
systemicValue: string
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
_id: string
|
|
37
|
-
currentTime: string
|
|
38
|
-
creatorLevel: string
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
interface ICommonProps {
|
|
42
|
-
tab?: 'list' | 'messages'
|
|
43
|
-
className?: string
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
interface IMessagesBalloon {
|
|
47
|
-
message: string
|
|
48
|
-
date: string
|
|
49
|
-
read: boolean
|
|
50
|
-
hasFile?: boolean
|
|
51
|
-
id: string
|
|
52
|
-
formatDate: (date: string | Date) => string | undefined
|
|
53
|
-
file?:
|
|
54
|
-
| {
|
|
55
|
-
contentType: string
|
|
56
|
-
location: string
|
|
57
|
-
mimetype: string
|
|
58
|
-
originalname: string
|
|
59
|
-
size?: number
|
|
60
|
-
pages?: number
|
|
61
|
-
}
|
|
62
|
-
| Iimages
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
interface IMesssengerAvatar extends Omit<ICommonProps, 'tab'> {
|
|
66
|
-
image?: string
|
|
67
|
-
children?: React.ReactNode
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
interface IImagesContainer {
|
|
71
|
-
file: File | null
|
|
72
|
-
onClose: () => void
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
interface IInconmingMessage extends Omit<IMessagesBalloon, 'read'> {
|
|
76
|
-
isSystemMessage?: boolean
|
|
77
|
-
user: {
|
|
78
|
-
avatar?: string
|
|
79
|
-
name: string
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
interface INewChat {
|
|
84
|
-
images?: File[]
|
|
85
|
-
issueOrigin?: string
|
|
86
|
-
message?: string
|
|
87
|
-
reason?: string
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
interface IMessengerSubmit {
|
|
91
|
-
message?: string
|
|
92
|
-
file?: FileList | null
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
interface Iimages {
|
|
96
|
-
key: string
|
|
97
|
-
location: string
|
|
98
|
-
mimetype: string
|
|
99
|
-
originalname: string
|
|
100
|
-
pages: number
|
|
101
|
-
size: number & File
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
interface IMessages {
|
|
105
|
-
images: Iimages[]
|
|
106
|
-
applicationId: string
|
|
107
|
-
content: string
|
|
108
|
-
createdAt: string
|
|
109
|
-
everybodyHasRead: boolean
|
|
110
|
-
isSystemMessage?: boolean
|
|
111
|
-
hasFile?: boolean
|
|
112
|
-
sender: {
|
|
113
|
-
image: string
|
|
114
|
-
username: string
|
|
115
|
-
uniqueCode: string
|
|
116
|
-
}
|
|
117
|
-
file?: {
|
|
118
|
-
contentType: string
|
|
119
|
-
location: string
|
|
120
|
-
mimetype: string
|
|
121
|
-
originalname: string
|
|
122
|
-
size: number
|
|
123
|
-
}
|
|
124
|
-
readByList: string[]
|
|
125
|
-
senderId: string
|
|
126
|
-
senderUniqueCode?: string
|
|
127
|
-
ticketId: string
|
|
128
|
-
messagecode: number
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
interface IGetMessages {
|
|
132
|
-
chatId: string
|
|
133
|
-
messageCount: number
|
|
134
|
-
callback: (
|
|
135
|
-
result?: { messages: IMessages[]; total: number },
|
|
136
|
-
error?: Error
|
|
137
|
-
) => void
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
interface IGetChats {
|
|
141
|
-
nature: _chatNature
|
|
142
|
-
status?: 'inprogress' | 'closed' | 'proposal'
|
|
143
|
-
search?: string
|
|
144
|
-
token?: string
|
|
145
|
-
callback: (tickets?: IList[], error?: Error) => void
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
interface ISocketMessage {
|
|
149
|
-
message: IMessages
|
|
150
|
-
markAsRead: boolean
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
interface IOption {
|
|
154
|
-
label: string
|
|
155
|
-
value: string
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export type {
|
|
159
|
-
ICommonProps,
|
|
160
|
-
IImagesContainer,
|
|
161
|
-
IInconmingMessage,
|
|
162
|
-
IMessagesBalloon,
|
|
163
|
-
IMessengerSubmit,
|
|
164
|
-
IMesssengerAvatar,
|
|
165
|
-
IList,
|
|
166
|
-
IMessages,
|
|
167
|
-
INewChat,
|
|
168
|
-
IGetMessages,
|
|
169
|
-
IGetChats,
|
|
170
|
-
IChatUsers,
|
|
171
|
-
ISocketMessage,
|
|
172
|
-
Iimages,
|
|
173
|
-
IOption,
|
|
174
|
-
}
|
|
1
|
+
import React from 'react'
|
|
2
|
+
export type _chatNature = 'helpdesk' | 'communication' | 'proposal' | ''
|
|
3
|
+
|
|
4
|
+
interface IChatUsers {
|
|
5
|
+
applicationId: string
|
|
6
|
+
createdAt: string
|
|
7
|
+
image?: string
|
|
8
|
+
ticketAdmin: boolean
|
|
9
|
+
uniqueCode: string
|
|
10
|
+
updatedAt: string
|
|
11
|
+
username: string
|
|
12
|
+
_id: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface IList {
|
|
16
|
+
applicationId: string
|
|
17
|
+
creator: Omit<IChatUsers, '_id'>
|
|
18
|
+
creatorId: string
|
|
19
|
+
nature: _chatNature
|
|
20
|
+
protocol: string
|
|
21
|
+
reason?: string
|
|
22
|
+
subject?: string
|
|
23
|
+
createdAt: Date
|
|
24
|
+
uniqueCode: string
|
|
25
|
+
updatedAt: string
|
|
26
|
+
userIdList: string[]
|
|
27
|
+
totalUnreadMessages: number
|
|
28
|
+
SLATimePassed: number
|
|
29
|
+
users: IChatUsers[]
|
|
30
|
+
status: {
|
|
31
|
+
current: {
|
|
32
|
+
state: string
|
|
33
|
+
systemicValue: string
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
_id: string
|
|
37
|
+
currentTime: string
|
|
38
|
+
creatorLevel: string
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interface ICommonProps {
|
|
42
|
+
tab?: 'list' | 'messages'
|
|
43
|
+
className?: string
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
interface IMessagesBalloon {
|
|
47
|
+
message: string
|
|
48
|
+
date: string
|
|
49
|
+
read: boolean
|
|
50
|
+
hasFile?: boolean
|
|
51
|
+
id: string
|
|
52
|
+
formatDate: (date: string | Date) => string | undefined
|
|
53
|
+
file?:
|
|
54
|
+
| {
|
|
55
|
+
contentType: string
|
|
56
|
+
location: string
|
|
57
|
+
mimetype: string
|
|
58
|
+
originalname: string
|
|
59
|
+
size?: number
|
|
60
|
+
pages?: number
|
|
61
|
+
}
|
|
62
|
+
| Iimages
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
interface IMesssengerAvatar extends Omit<ICommonProps, 'tab'> {
|
|
66
|
+
image?: string
|
|
67
|
+
children?: React.ReactNode
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
interface IImagesContainer {
|
|
71
|
+
file: File | null
|
|
72
|
+
onClose: () => void
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
interface IInconmingMessage extends Omit<IMessagesBalloon, 'read'> {
|
|
76
|
+
isSystemMessage?: boolean
|
|
77
|
+
user: {
|
|
78
|
+
avatar?: string
|
|
79
|
+
name: string
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
interface INewChat {
|
|
84
|
+
images?: File[]
|
|
85
|
+
issueOrigin?: string
|
|
86
|
+
message?: string
|
|
87
|
+
reason?: string
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
interface IMessengerSubmit {
|
|
91
|
+
message?: string
|
|
92
|
+
file?: FileList | null
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
interface Iimages {
|
|
96
|
+
key: string
|
|
97
|
+
location: string
|
|
98
|
+
mimetype: string
|
|
99
|
+
originalname: string
|
|
100
|
+
pages: number
|
|
101
|
+
size: number & File
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
interface IMessages {
|
|
105
|
+
images: Iimages[]
|
|
106
|
+
applicationId: string
|
|
107
|
+
content: string
|
|
108
|
+
createdAt: string
|
|
109
|
+
everybodyHasRead: boolean
|
|
110
|
+
isSystemMessage?: boolean
|
|
111
|
+
hasFile?: boolean
|
|
112
|
+
sender: {
|
|
113
|
+
image: string
|
|
114
|
+
username: string
|
|
115
|
+
uniqueCode: string
|
|
116
|
+
}
|
|
117
|
+
file?: {
|
|
118
|
+
contentType: string
|
|
119
|
+
location: string
|
|
120
|
+
mimetype: string
|
|
121
|
+
originalname: string
|
|
122
|
+
size: number
|
|
123
|
+
}
|
|
124
|
+
readByList: string[]
|
|
125
|
+
senderId: string
|
|
126
|
+
senderUniqueCode?: string
|
|
127
|
+
ticketId: string
|
|
128
|
+
messagecode: number
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
interface IGetMessages {
|
|
132
|
+
chatId: string
|
|
133
|
+
messageCount: number
|
|
134
|
+
callback: (
|
|
135
|
+
result?: { messages: IMessages[]; total: number },
|
|
136
|
+
error?: Error
|
|
137
|
+
) => void
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
interface IGetChats {
|
|
141
|
+
nature: _chatNature
|
|
142
|
+
status?: 'inprogress' | 'closed' | 'proposal'
|
|
143
|
+
search?: string
|
|
144
|
+
token?: string
|
|
145
|
+
callback: (tickets?: IList[], error?: Error) => void
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
interface ISocketMessage {
|
|
149
|
+
message: IMessages
|
|
150
|
+
markAsRead: boolean
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
interface IOption {
|
|
154
|
+
label: string
|
|
155
|
+
value: string
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export type {
|
|
159
|
+
ICommonProps,
|
|
160
|
+
IImagesContainer,
|
|
161
|
+
IInconmingMessage,
|
|
162
|
+
IMessagesBalloon,
|
|
163
|
+
IMessengerSubmit,
|
|
164
|
+
IMesssengerAvatar,
|
|
165
|
+
IList,
|
|
166
|
+
IMessages,
|
|
167
|
+
INewChat,
|
|
168
|
+
IGetMessages,
|
|
169
|
+
IGetChats,
|
|
170
|
+
IChatUsers,
|
|
171
|
+
ISocketMessage,
|
|
172
|
+
Iimages,
|
|
173
|
+
IOption,
|
|
174
|
+
}
|