agx-chat-web 0.4.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 (154) hide show
  1. package/README.md +9 -0
  2. package/dist/agx-chat.js +3 -0
  3. package/dist/agx-chat.js.LICENSE.txt +303 -0
  4. package/dist/agx-chat.js.map +1 -0
  5. package/dist/agx-chat.min.js +3 -0
  6. package/dist/agx-chat.min.js.LICENSE.txt +303 -0
  7. package/dist/agx-chat.min.js.map +1 -0
  8. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.d.ts +1 -0
  9. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.js +46 -0
  10. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.js.map +1 -0
  11. package/dist/esm/app/Messenger/classes/slaCalculations.d.ts +30 -0
  12. package/dist/esm/app/Messenger/classes/slaCalculations.js +142 -0
  13. package/dist/esm/app/Messenger/classes/slaCalculations.js.map +1 -0
  14. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.d.ts +14 -0
  15. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.js +31 -0
  16. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.js.map +1 -0
  17. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.d.ts +9 -0
  18. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.js +15 -0
  19. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.js.map +1 -0
  20. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.d.ts +3 -0
  21. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.js +24 -0
  22. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.js.map +1 -0
  23. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.d.ts +3 -0
  24. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js +33 -0
  25. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js.map +1 -0
  26. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.d.ts +11 -0
  27. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.js +37 -0
  28. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.js.map +1 -0
  29. package/dist/esm/app/Messenger/components/InputFile/InputFile.d.ts +8 -0
  30. package/dist/esm/app/Messenger/components/InputFile/InputFile.js +59 -0
  31. package/dist/esm/app/Messenger/components/InputFile/InputFile.js.map +1 -0
  32. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.d.ts +8 -0
  33. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.js +32 -0
  34. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.js.map +1 -0
  35. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.d.ts +3 -0
  36. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.js +13 -0
  37. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.js.map +1 -0
  38. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.d.ts +40 -0
  39. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.js +39 -0
  40. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.js.map +1 -0
  41. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.d.ts +10 -0
  42. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.js +32 -0
  43. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.js.map +1 -0
  44. package/dist/esm/app/Messenger/components/Select/Select.d.ts +13 -0
  45. package/dist/esm/app/Messenger/components/Select/Select.js +16 -0
  46. package/dist/esm/app/Messenger/components/Select/Select.js.map +1 -0
  47. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.d.ts +3 -0
  48. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js +32 -0
  49. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js.map +1 -0
  50. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.d.ts +3 -0
  51. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.js +14 -0
  52. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.js.map +1 -0
  53. package/dist/esm/app/Messenger/components/TextArea/TextArea.d.ts +8 -0
  54. package/dist/esm/app/Messenger/components/TextArea/TextArea.js +14 -0
  55. package/dist/esm/app/Messenger/components/TextArea/TextArea.js.map +1 -0
  56. package/dist/esm/app/Messenger/hooks/useConversations.d.ts +11 -0
  57. package/dist/esm/app/Messenger/hooks/useConversations.js +59 -0
  58. package/dist/esm/app/Messenger/hooks/useConversations.js.map +1 -0
  59. package/dist/esm/app/Messenger/hooks/useThemes.d.ts +31 -0
  60. package/dist/esm/app/Messenger/hooks/useThemes.js +11 -0
  61. package/dist/esm/app/Messenger/hooks/useThemes.js.map +1 -0
  62. package/dist/esm/app/Messenger/icons/AttachFileIcon.d.ts +3 -0
  63. package/dist/esm/app/Messenger/icons/AttachFileIcon.js +10 -0
  64. package/dist/esm/app/Messenger/icons/AttachFileIcon.js.map +1 -0
  65. package/dist/esm/app/Messenger/icons/CloseIcon.d.ts +1 -0
  66. package/dist/esm/app/Messenger/icons/CloseIcon.js +9 -0
  67. package/dist/esm/app/Messenger/icons/CloseIcon.js.map +1 -0
  68. package/dist/esm/app/Messenger/icons/EmptyIcon.d.ts +1 -0
  69. package/dist/esm/app/Messenger/icons/EmptyIcon.js +8 -0
  70. package/dist/esm/app/Messenger/icons/EmptyIcon.js.map +1 -0
  71. package/dist/esm/app/Messenger/icons/MessageIcon.d.ts +5 -0
  72. package/dist/esm/app/Messenger/icons/MessageIcon.js +12 -0
  73. package/dist/esm/app/Messenger/icons/MessageIcon.js.map +1 -0
  74. package/dist/esm/app/Messenger/icons/ReadIcon.d.ts +3 -0
  75. package/dist/esm/app/Messenger/icons/ReadIcon.js +7 -0
  76. package/dist/esm/app/Messenger/icons/ReadIcon.js.map +1 -0
  77. package/dist/esm/app/Messenger/icons/SearchIcon.d.ts +1 -0
  78. package/dist/esm/app/Messenger/icons/SearchIcon.js +8 -0
  79. package/dist/esm/app/Messenger/icons/SearchIcon.js.map +1 -0
  80. package/dist/esm/app/Messenger/icons/TimerIcon.d.ts +1 -0
  81. package/dist/esm/app/Messenger/icons/TimerIcon.js +6 -0
  82. package/dist/esm/app/Messenger/icons/TimerIcon.js.map +1 -0
  83. package/dist/esm/app/Messenger/icons/TrashIcon.d.ts +5 -0
  84. package/dist/esm/app/Messenger/icons/TrashIcon.js +7 -0
  85. package/dist/esm/app/Messenger/icons/TrashIcon.js.map +1 -0
  86. package/dist/esm/app/Messenger/views/MessengerList.d.ts +39 -0
  87. package/dist/esm/app/Messenger/views/MessengerList.js +50 -0
  88. package/dist/esm/app/Messenger/views/MessengerList.js.map +1 -0
  89. package/dist/esm/app/Messenger/views/MessengerListItem.d.ts +11 -0
  90. package/dist/esm/app/Messenger/views/MessengerListItem.js +87 -0
  91. package/dist/esm/app/Messenger/views/MessengerListItem.js.map +1 -0
  92. package/dist/esm/app/Messenger/views/MessengerMessages.d.ts +23 -0
  93. package/dist/esm/app/Messenger/views/MessengerMessages.js +133 -0
  94. package/dist/esm/app/Messenger/views/MessengerMessages.js.map +1 -0
  95. package/dist/esm/app/Messenger/views/NewFormChat.d.ts +10 -0
  96. package/dist/esm/app/Messenger/views/NewFormChat.js +64 -0
  97. package/dist/esm/app/Messenger/views/NewFormChat.js.map +1 -0
  98. package/dist/esm/index.d.ts +8 -0
  99. package/dist/esm/index.js +9 -0
  100. package/dist/esm/index.js.map +1 -0
  101. package/dist/esm/setupTests.d.ts +1 -0
  102. package/dist/esm/setupTests.js +6 -0
  103. package/dist/esm/setupTests.js.map +1 -0
  104. package/dist/esm/types.d.ts +134 -0
  105. package/dist/esm/types.js +2 -0
  106. package/dist/esm/types.js.map +1 -0
  107. package/package.json +67 -0
  108. package/src/__tests__/app/Messenger/classes/slaCalculations.spec.ts +115 -0
  109. package/src/app/Messenger/classes/slaCalculations.ts +165 -0
  110. package/src/app/Messenger/components/ChatButton/ChatButton.tsx +63 -0
  111. package/src/app/Messenger/components/ChatTabs/ChatTabs.less +18 -0
  112. package/src/app/Messenger/components/ChatTabs/ChatTabs.tsx +32 -0
  113. package/src/app/Messenger/components/ImagesContainer/ImagesContainer.less +64 -0
  114. package/src/app/Messenger/components/ImagesContainer/ImagesContainer.tsx +40 -0
  115. package/src/app/Messenger/components/IncomingMessage/IncomingMessage.tsx +59 -0
  116. package/src/app/Messenger/components/InfiniteScroll/InfiniteScroll.tsx +52 -0
  117. package/src/app/Messenger/components/InputFile/InputFile.tsx +106 -0
  118. package/src/app/Messenger/components/InputFile/inputFile.less +52 -0
  119. package/src/app/Messenger/components/MessageBallon/MessageBalloon.tsx +88 -0
  120. package/src/app/Messenger/components/MessengerAvatar/MessengerAvatar.tsx +21 -0
  121. package/src/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.tsx +58 -0
  122. package/src/app/Messenger/components/SearchInput/SearchInput.less +45 -0
  123. package/src/app/Messenger/components/SearchInput/SearchInput.tsx +68 -0
  124. package/src/app/Messenger/components/Select/Select.less +22 -0
  125. package/src/app/Messenger/components/Select/Select.tsx +41 -0
  126. package/src/app/Messenger/components/SenderMessages/SenderMessages.tsx +52 -0
  127. package/src/app/Messenger/components/SystemMessage/SystemMessage.tsx +23 -0
  128. package/src/app/Messenger/components/TextArea/TextArea.tsx +31 -0
  129. package/src/app/Messenger/components/TextArea/Textarea.less +22 -0
  130. package/src/app/Messenger/hooks/useConversations.tsx +80 -0
  131. package/src/app/Messenger/hooks/useThemes.tsx +14 -0
  132. package/src/app/Messenger/icons/AttachFileIcon.tsx +11 -0
  133. package/src/app/Messenger/icons/CloseIcon.tsx +11 -0
  134. package/src/app/Messenger/icons/EmptyIcon.tsx +11 -0
  135. package/src/app/Messenger/icons/MessageIcon.tsx +18 -0
  136. package/src/app/Messenger/icons/ReadIcon.tsx +9 -0
  137. package/src/app/Messenger/icons/SearchIcon.tsx +12 -0
  138. package/src/app/Messenger/icons/TimerIcon.tsx +10 -0
  139. package/src/app/Messenger/icons/TrashIcon.tsx +13 -0
  140. package/src/app/Messenger/views/Messenger.less +610 -0
  141. package/src/app/Messenger/views/MessengerList.tsx +172 -0
  142. package/src/app/Messenger/views/MessengerListItem.tsx +136 -0
  143. package/src/app/Messenger/views/MessengerMessages.tsx +287 -0
  144. package/src/app/Messenger/views/NewFormChat.tsx +126 -0
  145. package/src/assets/right-arrow.svg +10 -0
  146. package/src/index.ts +17 -0
  147. package/src/react-app-env.d.ts +16 -0
  148. package/src/setupTests.ts +5 -0
  149. package/src/styles/abstracts/animations.less +8 -0
  150. package/src/styles/abstracts/mixins.less +5 -0
  151. package/src/styles/abstracts/variables.less +25 -0
  152. package/src/styles/base/base.less +6 -0
  153. package/src/styles/index.less +6 -0
  154. package/src/types.ts +166 -0
@@ -0,0 +1,126 @@
1
+ import React, { FormEvent, useState } from 'react'
2
+
3
+ import InputFile from '../components/InputFile/InputFile'
4
+ import Select from '../components/Select/Select'
5
+ import Textarea from '../components/TextArea/TextArea'
6
+ import useTheme from '../hooks/useThemes'
7
+ import CloseIcon from '../icons/CloseIcon'
8
+ import { IOption } from 'types'
9
+
10
+
11
+ interface IProps {
12
+ submitNewChat: (values: FormData) => void
13
+ cancelNewChat: () => void
14
+ reasons: Array<IOption>
15
+ products: Array<IOption>
16
+ loading: boolean
17
+ }
18
+
19
+ function NewChatForm ({ submitNewChat, cancelNewChat, reasons, products, loading }: IProps) {
20
+ const [reason, setReason] = useState<string>(reasons?.[0]?.value)
21
+ const [product, setProduct] = useState<string>(products?.[0]?.value)
22
+ const [message, setMessage] = useState<string>()
23
+ const [fileList, setFileList] = useState<File[]>([])
24
+
25
+ const { theme } = useTheme()
26
+
27
+ const onSubmit = (event: FormEvent) => {
28
+ const data2 = new FormData()
29
+ event.preventDefault()
30
+
31
+ fileList.forEach(file => {
32
+ data2.append(`images`, file, file.name);
33
+ })
34
+
35
+ if (reason) data2.append('reason', reason)
36
+ if (product) data2.append('product', product)
37
+
38
+ if (message) data2.append('message', message)
39
+ submitNewChat(data2)
40
+ }
41
+
42
+ const onUpdateFile = (file: File) => {
43
+ setFileList(files => [...files, file])
44
+ }
45
+
46
+ const onRemoveFile = (file: File) => {
47
+ setFileList(fileList.filter((item: File) => item !== file))
48
+ }
49
+
50
+ return (
51
+ <div
52
+ className="messenger__new-chat-form"
53
+ style={{
54
+ backgroundColor: theme.newChatFormBg,
55
+ borderRadius: theme.newChatFormRadius
56
+ }}
57
+ >
58
+ <div className="messenger__new-chat-form-header">
59
+ <h2 className="messenger__new-chat-form-title">
60
+ <b style={{ color: theme.newChatFormTexts }}>Novo Chamado</b>
61
+ </h2>
62
+
63
+ <button onClick={cancelNewChat} className="messenger__new-chat-form-close">
64
+ <CloseIcon />
65
+ </button>
66
+ </div>
67
+ <h3
68
+ className='messenger__disclaimer'
69
+ style={{
70
+ borderColor: theme.disclaimerPrimaryColor,
71
+ color: theme.disclaimerTextColor,
72
+ backgroundColor: theme.disclaimerSecondaryColor
73
+ }}
74
+ >
75
+ Seu chamado será respondido o mais breve possível! Caso você se ausente do chamado pelo período de <b>uma hora</b> o mesmo será automaticamente fechado.
76
+ </h3>
77
+ <form onSubmit={onSubmit} className="messenger__new-chat-fields">
78
+ <Select
79
+ onChange={(value) => setReason(value)}
80
+ options={reasons}
81
+ placeholder='Selecione um motivo para o chamado'
82
+ name="reasons"
83
+ value={reason}
84
+ label="Motivos"
85
+ />
86
+
87
+ <Select
88
+ onChange={(value) => setProduct(value)}
89
+ options={products}
90
+ placeholder='Selecione o relacionado ao erro'
91
+ value={product}
92
+ name="product"
93
+ label="Produto (opcional)"
94
+ />
95
+
96
+ <InputFile
97
+ fileList={fileList}
98
+ onUpdateFile={onUpdateFile}
99
+ onRemoveFile={onRemoveFile}
100
+ label='Imagem (opcional)'
101
+ />
102
+
103
+ <Textarea
104
+ onChange={(value) => setMessage(value)}
105
+ placeholder="Digite sua mensagem aqui"
106
+ name="message"
107
+ label="Mensagem"
108
+ />
109
+
110
+ <button
111
+ className={`w-100 ${!loading ? 'messenger__new-chat-form-send' : 'messenger__new-chat-form-send messenger__new-chat-form-send--disabled'}`}
112
+ disabled={loading}
113
+ type="submit"
114
+ style={{
115
+ backgroundColor: !loading ? theme.buttonPrimary : '#ccc',
116
+ color: theme.buttonPrimaryText
117
+ }}
118
+ >
119
+ Enviar novo chamado
120
+ </button>
121
+ </form>
122
+ </div>
123
+ )
124
+ }
125
+
126
+ export default NewChatForm
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="256" height="256" viewBox="0 0 256 256" xml:space="preserve">
2
+ <desc>Created with Fabric.js 1.7.22</desc>
3
+ <defs>
4
+ </defs>
5
+ <g transform="translate(128 128) scale(0.72 0.72)" style="">
6
+ <g style="stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: none; fill-rule: nonzero; opacity: 1;" transform="translate(-175.05 -175.05000000000004) scale(3.89 3.89)" >
7
+ <path d="M 87.85 41.551 L 5.545 1.167 C 2.414 -0.369 -0.979 2.725 0.263 5.984 l 14.342 37.648 c 0.336 0.881 0.336 1.854 0 2.735 L 0.263 84.016 c -1.241 3.259 2.152 6.353 5.282 4.817 L 87.85 48.449 C 90.717 47.043 90.717 42.957 87.85 41.551 z" style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(255,255,255); fill-rule: nonzero; opacity: 1;" transform=" matrix(1 0 0 1 0 0) " stroke-linecap="round" />
8
+ </g>
9
+ </g>
10
+ </svg>
package/src/index.ts ADDED
@@ -0,0 +1,17 @@
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
+
10
+ export {
11
+ MessengerList,
12
+ MessengerMessages,
13
+ MessengerListItem,
14
+ MessengerThemeWrapper,
15
+ NewChatButton,
16
+ useConversations
17
+ }
@@ -0,0 +1,16 @@
1
+ /// <reference types="react-scripts" />
2
+
3
+ declare module "*.module.less" {
4
+ const classes: { [key: string]: string };
5
+ export default classes;
6
+ }
7
+
8
+ declare module '*.svg' {
9
+ const content: string;
10
+ export default content;
11
+ }
12
+
13
+ declare module "*.json" {
14
+ const value: any;
15
+ export default value;
16
+ }
@@ -0,0 +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';
@@ -0,0 +1,8 @@
1
+ @keyframes spin {
2
+ 0% {
3
+ transform: rotate(0deg);
4
+ }
5
+ 100% {
6
+ transform: rotate(360deg);
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ .flex-full-center() {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ }
@@ -0,0 +1,25 @@
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
+ // [1200 - 1600] - normal style //
9
+ @desktop-xxl: ~"only screen and (min-width: 1600px)";
10
+
11
+ @grey-1: #94989D;
12
+ @grey-2: #707070;
13
+ @border-color: #AAAAAA;
14
+ @messenger-primary-color: #00A73E;
15
+ @messenger-messages-bg: #eeeeee;
16
+ @secondary-bg-color-chat: #484C52;
17
+ @card-background: #DDDDDD;
18
+ @upload-file-icon-color: #8696a0;
19
+ @border-radius: 20px;
20
+ @body-background: blue;
21
+ @component-background: #232831;
22
+ @full-content-height: calc(100vh - 23px);
23
+ @title-form-color: #476077;
24
+ @border-radius: 20px;
25
+
@@ -0,0 +1,6 @@
1
+ *,
2
+ ::after,
3
+ ::before {
4
+ padding: 0;
5
+ margin: 0;
6
+ }
@@ -0,0 +1,6 @@
1
+ @import '../app/Messenger/views/Messenger.less';
2
+ @import './base/base.less';
3
+ @import './abstracts/variables';
4
+ @import './abstracts/mixins';
5
+ @import './abstracts/animations';
6
+
package/src/types.ts ADDED
@@ -0,0 +1,166 @@
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
+ }
39
+
40
+ interface ICommonProps {
41
+ tab?: 'list' | 'messages'
42
+ className?: string
43
+ }
44
+
45
+ interface IMessagesBalloon {
46
+ message: string
47
+ date: string
48
+ read: boolean
49
+ hasFile?: boolean
50
+ id:string
51
+ formatDate: (date: string | Date) => string | undefined
52
+ file?: {
53
+ contentType: string
54
+ location: string
55
+ mimeType: string
56
+ orignalname: string
57
+ size: number
58
+ } | Iimages
59
+ }
60
+
61
+ interface IMesssengerAvatar extends Omit<ICommonProps, 'tab'> {
62
+ image?: string
63
+ children?: React.ReactNode;
64
+ }
65
+
66
+ interface IImagesContainer {
67
+ file: File| null,
68
+ onClose: () => void
69
+ }
70
+
71
+ interface IInconmingMessage extends Omit<IMessagesBalloon, 'read'> {
72
+ isSystemMessage?: boolean
73
+ user: {
74
+ avatar?: string
75
+ name: string
76
+ }
77
+ }
78
+
79
+ interface INewChat {
80
+ images?: File[]
81
+ issueOrigin?: string
82
+ message?: string
83
+ reason?: string
84
+ }
85
+
86
+
87
+ interface IMessengerSubmit {
88
+ message?: string
89
+ file?: FileList | null
90
+ }
91
+
92
+ interface Iimages
93
+ {
94
+ key: string
95
+ location: string
96
+ & File
97
+ }
98
+
99
+ interface IMessages {
100
+ images: Iimages[]
101
+ applicationId: string
102
+ content: string
103
+ createdAt: string
104
+ everybodyHasRead: boolean
105
+ isSystemMessage?: boolean
106
+ hasFile?: boolean
107
+ sender: {
108
+ image: string
109
+ username: string
110
+ uniqueCode: string
111
+ }
112
+ file?: {
113
+ contentType: string
114
+ location: string
115
+ mimeType: string
116
+ orignalname: string
117
+ size: number
118
+ }
119
+ readByList: string[]
120
+ senderId: string
121
+ senderUniqueCode?: string
122
+ ticketId: string
123
+ messagecode: number
124
+ }
125
+
126
+ interface IGetMessages {
127
+ chatId: string,
128
+ messageCount: number,
129
+ callback: (result?: {messages: IMessages[], total: number}, error?: Error) => void
130
+ }
131
+
132
+ interface IGetChats {
133
+ nature: _chatNature,
134
+ status?: 'inprogress' | 'closed' | 'proposal',
135
+ search?: string,
136
+ token?: string
137
+ callback: (tickets?: IList[], error?: Error) => void
138
+ }
139
+
140
+ interface ISocketMessage {
141
+ message: IMessages,
142
+ markAsRead: boolean
143
+ }
144
+
145
+ interface IOption {
146
+ label: string
147
+ value: string
148
+ }
149
+
150
+ export type {
151
+ ICommonProps,
152
+ IImagesContainer,
153
+ IInconmingMessage,
154
+ IMessagesBalloon,
155
+ IMessengerSubmit,
156
+ IMesssengerAvatar,
157
+ IList,
158
+ IMessages,
159
+ INewChat,
160
+ IGetMessages,
161
+ IGetChats,
162
+ IChatUsers,
163
+ ISocketMessage,
164
+ Iimages,
165
+ IOption
166
+ }