@agilemotion/oui-react-js 1.3.8 → 1.3.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 (213) hide show
  1. package/README.TXT +1 -0
  2. package/dist/ApplicationContext.js +161 -284
  3. package/dist/BasicApp.js +1 -1
  4. package/dist/BasicAppHome.js +17 -4
  5. package/dist/BusinessPortalApp.js +1 -1
  6. package/dist/BusinessPortalAppHome.js +10 -39
  7. package/dist/DynamicJS.js +20 -52
  8. package/dist/RestUtils.js +83 -108
  9. package/dist/Utils.js +36 -30
  10. package/dist/assets/jss/components/authNavbarStyle.js +34 -35
  11. package/dist/assets/jss/components/cardHeaderStyle.js +12 -12
  12. package/dist/assets/jss/components/customDropdownStyle.js +26 -26
  13. package/dist/assets/jss/components/customInputStyle.js +2 -8
  14. package/dist/assets/jss/components/dropdownStyle.js +10 -15
  15. package/dist/assets/jss/components/footerStyle.js +12 -18
  16. package/dist/assets/jss/components/headerLinksStyle.js +7 -13
  17. package/dist/assets/jss/components/headerStyle.js +24 -25
  18. package/dist/assets/jss/components/navbarLinksStyle.js +7 -13
  19. package/dist/assets/jss/components/navbarStyle.js +24 -25
  20. package/dist/assets/jss/components/sidebarStyle.js +41 -43
  21. package/dist/assets/jss/components/typographyStyle.js +2 -8
  22. package/dist/assets/jss/rootStyle.js +32 -47
  23. package/dist/assets/jss/views/layoutStyle.js +6 -11
  24. package/dist/assets/jss/views/loginStyle.js +4 -10
  25. package/dist/assets/lotties/call-loading.json +1 -0
  26. package/dist/assets/lotties/calling-2.json +1 -0
  27. package/dist/assets/lotties/calling.json +1 -0
  28. package/dist/assets/lotties/calling2.json +1 -0
  29. package/dist/assets/lotties/chat.json +1 -0
  30. package/dist/assets/lotties/join.json +1 -0
  31. package/dist/assets/lotties/loading.json +1 -0
  32. package/dist/assets/lotties/msg2.json +1 -0
  33. package/dist/assets/lotties/recording.json +1 -0
  34. package/dist/assets/lotties/waiting.json +1 -0
  35. package/dist/assets/scss/black-dashboard-react/bootstrap/_card.scss +5 -5
  36. package/dist/assets/scss/black-dashboard-react/bootstrap/_carousel.scss +2 -2
  37. package/dist/assets/scss/black-dashboard-react/bootstrap/_custom-forms.scss +3 -3
  38. package/dist/assets/scss/black-dashboard-react/bootstrap/_functions.scss +1 -1
  39. package/dist/assets/scss/black-dashboard-react/bootstrap/_images.scss +1 -1
  40. package/dist/assets/scss/black-dashboard-react/bootstrap/_jumbotron.scss +1 -1
  41. package/dist/assets/scss/black-dashboard-react/bootstrap/_popover.scss +7 -5
  42. package/dist/assets/scss/black-dashboard-react/bootstrap/_tooltip.scss +4 -4
  43. package/dist/assets/scss/black-dashboard-react/bootstrap/_variables.scss +5 -5
  44. package/dist/assets/scss/black-dashboard-react/bootstrap/mixins/_grid-framework.scss +2 -2
  45. package/dist/assets/scss/black-dashboard-react/bootstrap/mixins/_grid.scss +11 -9
  46. package/dist/assets/scss/black-dashboard-react/bootstrap/utilities/_embed.scss +6 -4
  47. package/dist/assets/scss/black-dashboard-react/custom/_variables.scss +1 -1
  48. package/dist/components/AlertBar.js +39 -80
  49. package/dist/components/AlertItem.js +4 -26
  50. package/dist/components/Button.js +24 -36
  51. package/dist/components/Calendar.js +478 -0
  52. package/dist/components/Calender.css +244 -0
  53. package/dist/components/ConfirmationDialog.js +5 -29
  54. package/dist/components/DataGrid.js +169 -338
  55. package/dist/components/DataGridColumn.js +5 -28
  56. package/dist/components/DataGridFilter.js +46 -114
  57. package/dist/components/DataGridHeading.js +11 -19
  58. package/dist/components/Dialog.js +27 -121
  59. package/dist/components/DocumentViewer.js +8 -34
  60. package/dist/components/DocumentViewerComponent.js +2 -20
  61. package/dist/components/FileThumb.js +115 -0
  62. package/dist/components/Graph.js +25 -75
  63. package/dist/components/GraphNode.js +4 -21
  64. package/dist/components/HtmlPanel.js +59 -78
  65. package/dist/components/Icon.js +99 -1
  66. package/dist/components/LoadingIndicator.js +4 -4
  67. package/dist/components/LottieIcon.js +134 -0
  68. package/dist/components/PopupView.js +2 -20
  69. package/dist/components/RegularButton.js +15 -19
  70. package/dist/components/SignaturePanel.js +9 -40
  71. package/dist/components/SocketManager.js +170 -0
  72. package/dist/components/StepperTitleBar.js +30 -56
  73. package/dist/components/TabPage.js +6 -9
  74. package/dist/components/TabPanel.js +41 -98
  75. package/dist/components/TableCellContent.js +30 -38
  76. package/dist/components/TemplateDesigner.js +107 -151
  77. package/dist/components/TemplateItemEventHandler.js +33 -100
  78. package/dist/components/TemplateTable.js +6 -42
  79. package/dist/components/TitleBar.js +35 -52
  80. package/dist/components/Toolbar.js +33 -179
  81. package/dist/components/Tree.js +27 -64
  82. package/dist/components/card/Card.js +16 -20
  83. package/dist/components/card/CardAvatar.js +9 -13
  84. package/dist/components/card/CardBody.js +13 -17
  85. package/dist/components/card/CardFooter.js +12 -16
  86. package/dist/components/card/CardHeader.js +13 -17
  87. package/dist/components/card/CardIcon.js +6 -10
  88. package/dist/components/card/CardText.js +6 -10
  89. package/dist/components/customInput/CustomInput.js +12 -10
  90. package/dist/components/dashboard/BasicBusinessAppDashboard.js +79 -155
  91. package/dist/components/dashboard/BusinessPortalAppDashboard.js +30 -75
  92. package/dist/components/dashboard/components/Header.js +8 -25
  93. package/dist/components/dashboard/components/LeftDrawer.js +3 -1
  94. package/dist/components/dashboard/components/blackDashboard/fixedPlugin/FixedPlugin.js +1 -1
  95. package/dist/components/dashboard/components/blackDashboard/sidebar/Sidebar.js +138 -30
  96. package/dist/components/footer/Footer.js +6 -18
  97. package/dist/components/form/AddressSearch.js +32 -66
  98. package/dist/components/form/AutoComplete.js +160 -0
  99. package/dist/components/form/BaseField.js +66 -96
  100. package/dist/components/form/DatePicker.js +3 -21
  101. package/dist/components/form/FieldSet.js +158 -180
  102. package/dist/components/form/Form.css +1 -1
  103. package/dist/components/form/Form.js +137 -471
  104. package/dist/components/form/GridField.js +46 -146
  105. package/dist/components/form/IconField.js +35 -0
  106. package/dist/components/form/ImageEditor.js +19 -57
  107. package/dist/components/form/LookupField.js +8 -29
  108. package/dist/components/form/MultiFileUploadField.js +186 -0
  109. package/dist/components/form/RadioGroup.js +1 -16
  110. package/dist/components/form/Section.js +31 -92
  111. package/dist/components/form/SelectItem.js +14 -33
  112. package/dist/components/form/SignatureTemplateDesignerField.js +0 -1
  113. package/dist/components/form/Switch.js +53 -0
  114. package/dist/components/form/TextField.js +10 -17
  115. package/dist/components/form/TimePicker.js +7 -1
  116. package/dist/components/form/TransferList.css +2 -2
  117. package/dist/components/form/TransferList.js +67 -125
  118. package/dist/components/form/UploadField.js +27 -79
  119. package/dist/components/form/fieldset.css +8 -0
  120. package/dist/components/grid/GridContainer.js +5 -9
  121. package/dist/components/grid/GridItem.js +5 -9
  122. package/dist/components/layout/CollapsiblePanel.js +11 -33
  123. package/dist/components/layout/Layout.js +175 -290
  124. package/dist/components/layout/VC.css +17 -0
  125. package/dist/components/layout/View.css +17 -1
  126. package/dist/components/layout/View.js +77 -194
  127. package/dist/components/loader.css +1 -1
  128. package/dist/components/media/ClosablePanel.css +37 -0
  129. package/dist/components/media/ClosablePanel.js +53 -0
  130. package/dist/components/media/LobbyWaitingList.js +91 -0
  131. package/dist/components/media/MediaSoupHelper.js +223 -0
  132. package/dist/components/media/Recorder.js +235 -0
  133. package/dist/components/media/SideBarContent.css +54 -0
  134. package/dist/components/media/SideBarContent.js +46 -0
  135. package/dist/components/media/SocketRequest.js +20 -0
  136. package/dist/components/media/SocketResponse.js +16 -0
  137. package/dist/components/media/Timer.css +30 -0
  138. package/dist/components/media/Timer.js +88 -0
  139. package/dist/components/media/Toolbar.css +20 -0
  140. package/dist/components/media/Toolbar.js +470 -0
  141. package/dist/components/media/Tracks.js +39 -0
  142. package/dist/components/media/TrainingRoom.js +531 -0
  143. package/dist/components/media/Transports.js +35 -0
  144. package/dist/components/media/VCEventManager.js +74 -0
  145. package/dist/components/media/VCEventType.js +164 -0
  146. package/dist/components/media/VCParticipantList.css +72 -0
  147. package/dist/components/media/VCParticipantList.js +56 -0
  148. package/dist/components/media/VCParticipantListItem.css +73 -0
  149. package/dist/components/media/VCParticipantListItem.js +319 -0
  150. package/dist/components/media/VCRoom.css +42 -0
  151. package/dist/components/media/VCRoom.js +90 -0
  152. package/dist/components/media/VCRoomParticipant.css +25 -0
  153. package/dist/components/media/VCRoomParticipant.js +806 -0
  154. package/dist/components/media/VCRoomWorkspace.css +86 -0
  155. package/dist/components/media/VCRoomWorkspace.js +653 -0
  156. package/dist/components/media/Video.css +4 -0
  157. package/dist/components/media/Video.js +131 -0
  158. package/dist/components/media/chat/ChatRoom.js +926 -0
  159. package/dist/components/media/chat/ChatRoomItem.js +83 -0
  160. package/dist/components/media/chat/ChatRoomList.js +78 -0
  161. package/dist/components/media/chat/ChatRooms.scss +567 -0
  162. package/dist/components/menu/CollapsibleMenu.js +2 -19
  163. package/dist/components/menu/MenuBars.js +6 -33
  164. package/dist/components/menu/MenuButton.js +7 -35
  165. package/dist/components/menu/MenuItem.js +3 -20
  166. package/dist/components/menu/MenuLink.js +18 -12
  167. package/dist/components/navbars/AuthNavbar.js +5 -18
  168. package/dist/components/navbars/HomeNavbar.js +3 -5
  169. package/dist/components/navbars/PortalNavbar.js +4 -22
  170. package/dist/components/signatures/AgilitySignaturePanel.js +35 -101
  171. package/dist/components/signatures/AlertItem.js +3 -24
  172. package/dist/components/signatures/DocumentContainer.js +47 -134
  173. package/dist/components/signatures/ImageSignatureInput.js +8 -35
  174. package/dist/components/signatures/MenuButton.js +1 -16
  175. package/dist/components/signatures/Prompt.js +3 -24
  176. package/dist/components/signatures/ResponsiveTable.js +42 -83
  177. package/dist/components/signatures/SearchView.js +13 -50
  178. package/dist/components/signatures/SignatorySearch.js +83 -99
  179. package/dist/components/signatures/SignatorySearchForm.js +11 -17
  180. package/dist/components/signatures/SignatureInput.js +15 -44
  181. package/dist/components/signatures/SignatureInputProps.js +18 -60
  182. package/dist/components/signatures/SignatureTemplateDesigner.js +147 -235
  183. package/dist/components/signatures/Toolbar.js +7 -34
  184. package/dist/components/signatures/ViewUtils.js +2 -6
  185. package/dist/components/typography/Danger.js +3 -1
  186. package/dist/components/typography/Info.js +3 -1
  187. package/dist/components/typography/Link.js +6 -2
  188. package/dist/event/ActionHandlers.js +3 -3
  189. package/dist/event/EventType.js +7 -1
  190. package/dist/event/LoadDataActionHandler.js +1 -1
  191. package/dist/event/Observable.js +56 -168
  192. package/dist/event/RouteActionHandler.js +45 -11
  193. package/dist/event/ServiceCallActionHandler.js +34 -24
  194. package/dist/js/Addresses.js +10 -8
  195. package/dist/js/Media.js +157 -0
  196. package/dist/redux/store/ConfigureStore.js +3 -9
  197. package/dist/redux/store/DashboardStore.js +42 -94
  198. package/dist/redux/store/SecurityStore.js +15 -50
  199. package/dist/view/Dashboard.js +242 -163
  200. package/dist/view/security/ChangePasswordBasic.js +23 -76
  201. package/dist/view/security/ForgotPassword.js +9 -42
  202. package/dist/view/security/ForgotPasswordBasic.js +8 -41
  203. package/dist/view/security/Login.js +11 -47
  204. package/dist/view/security/LoginBasic.js +8 -41
  205. package/dist/view/security/LoginBusinessPortal.js +8 -41
  206. package/dist/view/security/ResetPassword.js +9 -47
  207. package/dist/view/security/ResetPasswordBasic.js +21 -71
  208. package/dist/view/security/Security.js +1 -0
  209. package/package.json +29 -13
  210. package/README.md +0 -1623
  211. package/dist/components/dashboard/BasicApp.js +0 -140
  212. package/dist/components/navbars/NavbarLinks.js +0 -212
  213. package/dist/components/signatures/OLD.js +0 -1138
@@ -0,0 +1,926 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _core = require("@material-ui/core");
11
+
12
+ var _Send = _interopRequireDefault(require("@material-ui/icons/Send"));
13
+
14
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
15
+
16
+ var _reactRouterDom = require("react-router-dom");
17
+
18
+ require("./ChatRooms.scss");
19
+
20
+ var _moment = _interopRequireDefault(require("moment"));
21
+
22
+ var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
23
+
24
+ var _LoginStyle = _interopRequireDefault(require("../view/security/LoginStyle"));
25
+
26
+ var _CustomInput = _interopRequireDefault(require("../customInput/CustomInput"));
27
+
28
+ var _LottieIcon = _interopRequireDefault(require("../LottieIcon"));
29
+
30
+ var _reactFeather = require("react-feather");
31
+
32
+ var _Utils = _interopRequireDefault(require("../../Utils"));
33
+
34
+ var _SocketManager = _interopRequireDefault(require("../../service/SocketManager"));
35
+
36
+ var _types = require("../../types");
37
+
38
+ var _AppManager = _interopRequireDefault(require("../../../common/service/AppManager"));
39
+
40
+ var _icons = require("@material-ui/icons");
41
+
42
+ var _AutoComplete = _interopRequireDefault(require("../customInput/AutoComplete"));
43
+
44
+ var _RestService = require("../../service/RestService");
45
+
46
+ var _reactstrap = require("reactstrap");
47
+
48
+ var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
49
+
50
+ var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
51
+
52
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
53
+
54
+ var _ChatPoll = _interopRequireDefault(require("./ChatPoll"));
55
+
56
+ var _linkifyReact = _interopRequireDefault(require("linkify-react"));
57
+
58
+ var _File = _interopRequireDefault(require("../customInput/File"));
59
+
60
+ var _Icon = _interopRequireDefault(require("../Icon"));
61
+
62
+ var _PollContainer = _interopRequireDefault(require("./PollContainer"));
63
+
64
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
65
+
66
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
67
+
68
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
69
+
70
+ const {
71
+ electron
72
+ } = window;
73
+
74
+ const ChatRoom = props => {
75
+ const navigate = (0, _reactRouterDom.useNavigate)();
76
+ const [refresher, setRefresher] = (0, _react.useState)(false);
77
+ const [currentUser, setCurrentUser] = (0, _react.useState)(_AppManager.default.getUserDetails());
78
+ const [message, setMessage] = (0, _react.useState)('');
79
+ const [selectedChat, setSelectedChat] = (0, _react.useState)(props.selectedChat);
80
+ const [documents, setDocuments] = (0, _react.useState)(null);
81
+ const [messages, setMessages] = (0, _react.useState)([]);
82
+ const [newParticipants, setNewParticipants] = (0, _react.useState)([]);
83
+ const [confirm, setImgUploadConfirm] = (0, _react.useState)('');
84
+ const messagesEndRef = (0, _react.useRef)(null);
85
+ const [loading, setLoading] = (0, _react.useState)(true);
86
+ const [mode, setMode] = (0, _react.useState)('CHAT');
87
+ const [currentVote, setCurrentVote] = (0, _react.useState)([]);
88
+ const [clearUploadedFileSwitch, setClearUploadedFileSwitch] = (0, _react.useState)(false);
89
+ const [openAddPeople, setOpenAddPeople] = (0, _react.useState)(false);
90
+ const [socketEventHandler] = (0, _react.useState)({});
91
+
92
+ const socketEventHandlerApi = () => {
93
+ return {
94
+ get id() {
95
+ return 'chat-room-122991829';
96
+ },
97
+
98
+ on: (eventType, be) => {
99
+ switch (eventType) {
100
+ case _types.MessageType.CHAT_MESSAGE:
101
+ onMessage(be.payload);
102
+ break;
103
+
104
+ case _types.MessageType.DELETE_CHAT_MESSAGE:
105
+ onDeleteMessage(be.payload);
106
+ break;
107
+
108
+ case _types.MessageType.SYSTEM_EVENT:
109
+ onSystemEvent(be.payload);
110
+ break;
111
+ }
112
+ }
113
+ };
114
+ };
115
+
116
+ const fetchChat = () => {
117
+ (0, _RestService.get)("".concat(_AppManager.default.getAPIHost(), "/api/v1/chat/fetchMeetingChat/").concat(selectedChat.meetingId), response => {
118
+ if (response && response.id) {
119
+ setSelectedChat(response);
120
+ }
121
+ }, e => {}, '', false);
122
+ };
123
+
124
+ const closePollHandler = (e, poll) => {
125
+ (0, _RestService.post)("".concat(_AppManager.default.getAPIHost(), "/api/v1/poll/close"), response => {
126
+ sendMessage(e, "Poll: ".concat(poll.question, " has been closed."));
127
+
128
+ if (props.chatTab) {
129
+ fetchChat();
130
+ } else {
131
+ props.addedPeopleHandler();
132
+ }
133
+ }, e => {}, {
134
+ id: poll.id
135
+ });
136
+ };
137
+
138
+ const submitPollVoteHandler = poll => {
139
+ let chatParticipant = selectedChat.participants.find(p => p.userId === currentUser.userId);
140
+ const data = {
141
+ pollId: poll.id,
142
+ optionId: poll.selectedOption,
143
+ chatParticipant: chatParticipant
144
+ };
145
+ (0, _RestService.post)("".concat(_AppManager.default.getAPIHost(), "/api/v1/poll/vote"), response => {
146
+ if (!props.chatTab) {
147
+ props.addedPeopleHandler();
148
+ }
149
+ }, e => {}, data);
150
+ };
151
+
152
+ const onSystemEvent = payload => {
153
+ console.log(messages);
154
+
155
+ if (payload.systemEventType === "NEW_POLL_VOTE") {
156
+ let find = messages.find(msg => msg.poll && msg.poll.id === payload.data.pollId);
157
+
158
+ if (find) {//find.totalVotes++;
159
+ }
160
+ }
161
+ };
162
+
163
+ const onMessage = payload => {
164
+ if (selectedChat && selectedChat.id === payload.roomId) {
165
+ if (props.onMessage) {
166
+ props.onMessage(payload.chatMessage, selectedChat);
167
+ }
168
+
169
+ if (payload.chatMessage.type === 'EVENT') {
170
+ if (props.chatTab) {
171
+ fetchChat();
172
+ } else {
173
+ props.addedPeopleHandler();
174
+ }
175
+ }
176
+
177
+ selectedChat.messages.push(payload.chatMessage);
178
+ loadMessages();
179
+ }
180
+ };
181
+
182
+ const onDeleteMessage = payload => {
183
+ let msg = messages.find(m => m.id === payload.messageId);
184
+
185
+ if (msg) {
186
+ msg.active = false;
187
+ setRefresher(!refresher);
188
+ }
189
+ };
190
+
191
+ const onDownload = document => {
192
+ let documentFileUrl = '';
193
+
194
+ let accessToken = _AppManager.default.get("accessToken");
195
+
196
+ if (document.id) {
197
+ documentFileUrl = "".concat(_AppManager.default.getAPIHost(), "/api/v1/document/download/").concat(document.id, "?access_token=").concat(accessToken);
198
+ } else {
199
+ const encodedDocumentLocation = encodeURIComponent(document.location);
200
+ documentFileUrl = "".concat(_AppManager.default.getAPIHost(), "/api/v1/document/download/location?documentLocation=").concat(encodedDocumentLocation, "&access_token=").concat(accessToken);
201
+ }
202
+
203
+ electron.ipcRenderer.sendMessage('downloadFile', {
204
+ payload: {
205
+ fileURL: documentFileUrl
206
+ }
207
+ });
208
+ };
209
+
210
+ const loadMessages = () => {
211
+ scrollToBottom();
212
+
213
+ if (selectedChat) {
214
+ const newMessages = [].concat(selectedChat.messages); // TODO. @Nsovo. This code is very unreliable. it breaks randomly. Please check if a user exists in the chat. If not call the back end to add them and then filter their messages from he current date
215
+ // NB : @Amu has change the code to first find a user and do a null check so that it does not break
216
+
217
+ let find = selectedChat.participants.find(p => p.userId === currentUser.userId);
218
+
219
+ if (_Utils.default.isNull(find)) {
220
+ (0, _RestService.post)("".concat(_AppManager.default.getAPIHost(), "/api/v1/chat/addParticipants"), response => {}, e => {}, {
221
+ chatId: selectedChat.id,
222
+ participants: [_AppManager.default.getUserDetails()]
223
+ });
224
+ }
225
+
226
+ const dateAddedToChat = find ? find.dateAddedToChat : new Date();
227
+ const filteredMessages = newMessages.filter(txt => dateAddedToChat === null || new Date(dateAddedToChat) < new Date(txt.createdDate));
228
+ setMessages(filteredMessages);
229
+ }
230
+
231
+ setLoading(false);
232
+ };
233
+
234
+ const getChatRoomTitle = () => {
235
+ if (selectedChat.type === 'CALENDAR_MEETING' || selectedChat.title) {
236
+ return selectedChat.title;
237
+ }
238
+
239
+ return _Utils.default.getChatMeetingTitle(selectedChat.participants, currentUser.userId, 58);
240
+ };
241
+
242
+ (0, _react.useEffect)(() => {
243
+ setSelectedChat(props.selectedChat);
244
+ }, [props.selectedChat]);
245
+ (0, _react.useEffect)(() => {
246
+ scrollToBottom();
247
+ }, [messages]);
248
+ (0, _react.useEffect)(() => {
249
+ setMessage('');
250
+ setDocuments(null);
251
+ loadMessages();
252
+ }, [selectedChat]);
253
+ (0, _react.useEffect)(() => {
254
+ setCurrentUser(_AppManager.default.getUserDetails());
255
+
256
+ _SocketManager.default.addSubscriptions(socketEventHandler, _types.MessageType.DELETE_CHAT_MESSAGE, _types.MessageType.CHAT_MESSAGE, _types.MessageType.SYSTEM_EVENT);
257
+ }, []);
258
+ (0, _react.useEffect)(() => {
259
+ socketEventHandler.api = socketEventHandlerApi();
260
+ });
261
+ (0, _react.useEffect)(() => {
262
+ return () => {
263
+ _SocketManager.default.removeSubscriptions(socketEventHandler);
264
+ };
265
+ }, []);
266
+
267
+ const scrollToBottom = () => {
268
+ var _messagesEndRef$curre;
269
+
270
+ (_messagesEndRef$curre = messagesEndRef.current) === null || _messagesEndRef$curre === void 0 ? void 0 : _messagesEndRef$curre.scrollIntoView({
271
+ behavior: 'smooth'
272
+ });
273
+ };
274
+
275
+ const handleChange = e => {
276
+ setMessage(e.target.value);
277
+ };
278
+
279
+ const participantsUserIds = () => {
280
+ return selectedChat.participants.filter(user => user.userId !== currentUser.userId).map(user => user.userId);
281
+ };
282
+
283
+ const sendMessage = (e, finalMessage = null, poll = null) => {
284
+ if (e) {
285
+ e.preventDefault();
286
+ }
287
+
288
+ if (message || documents || finalMessage || poll) {
289
+ let mType = 'TEXT';
290
+
291
+ if (documents && documents.length > 0) {
292
+ let combinedSize = 0;
293
+
294
+ for (const doc of documents) {
295
+ combinedSize = combinedSize + parseInt(doc.size);
296
+ }
297
+
298
+ if (combinedSize > 7500000) {
299
+ _AppManager.default.fireEvent(_types.SystemEventType.API_ERROR, {
300
+ message: 'Attachment should be not more than 7.5MB.'
301
+ });
302
+
303
+ return;
304
+ }
305
+
306
+ mType = 'FILE';
307
+ } else if (poll) {
308
+ mType = 'POLL';
309
+ } else if (finalMessage) {
310
+ mType = 'EVENT';
311
+ }
312
+
313
+ const msg = {
314
+ createdDate: new Date(),
315
+ type: mType,
316
+ active: true,
317
+ content: finalMessage ? finalMessage : message,
318
+ participant: currentUser
319
+ };
320
+
321
+ if (documents && documents.length > 0) {
322
+ msg.documents = documents;
323
+ setClearUploadedFileSwitch(!clearUploadedFileSwitch);
324
+ }
325
+
326
+ if (poll) {
327
+ msg.poll = poll;
328
+ }
329
+
330
+ msg.participant.active = true;
331
+ const participantsToSignalIds = participantsUserIds();
332
+
333
+ _SocketManager.default.emitEvent(_types.MessageType.CHAT_MESSAGE, {
334
+ roomId: selectedChat.id,
335
+ chatMessage: msg,
336
+ participantsToSignalIds,
337
+ skipAlert: props.chatTab || finalMessage,
338
+ newChat: selectedChat.messages.length === 0,
339
+ meetingId: props.meetingId ? props.meetingId : null
340
+ }).then(data => {
341
+ msg.id = data.id;
342
+ setMessages(oldMsgs => [...oldMsgs, msg]);
343
+ selectedChat.messages.push(msg);
344
+
345
+ if (props.onMessage && selectedChat) {
346
+ props.onMessage(msg, selectedChat);
347
+ }
348
+ }).catch(error => {});
349
+ }
350
+
351
+ setMessage('');
352
+ setImgUploadConfirm('');
353
+ setDocuments(null);
354
+ };
355
+
356
+ const callNow = e => {
357
+ e.preventDefault();
358
+ sendMessage(e, "".concat(currentUser.name, " has started a call."));
359
+ (0, _RestService.get)("".concat(_AppManager.default.getAPIHost(), "/api/v1/meeting/generateId"), response => {
360
+ const directCallRoom = {
361
+ id: response
362
+ };
363
+ const participantsToSignalIds = participantsUserIds();
364
+
365
+ _SocketManager.default.emitEvent(_types.MessageType.CALL_MULTIPLE_USER, {
366
+ room: directCallRoom.id,
367
+ usersToCall: participantsToSignalIds,
368
+ callerId: _SocketManager.default.socket.id,
369
+ name: currentUser.name
370
+ }).catch(error => {});
371
+
372
+ navigate("/view/meetingRoom", {
373
+ state: {
374
+ displayMode: 'window',
375
+ selectedMeeting: directCallRoom,
376
+ videoMuted: true,
377
+ audioMuted: false,
378
+ isDirectCall: true,
379
+ isHost: true,
380
+ usersToCall: participantsToSignalIds
381
+ }
382
+ });
383
+ }, e => {}, '', true);
384
+ };
385
+
386
+ const addPeople = e => {
387
+ if (newParticipants.length > 0) {
388
+ newParticipants.forEach(participant => {
389
+ selectedChat.participants.push(participant);
390
+ });
391
+ (0, _RestService.post)("".concat(_AppManager.default.getAPIHost(), "/api/v1/chat/addParticipants"), response => {
392
+ sendMessage(e, newParticipants[0].name + ' has join the conversation.');
393
+ setNewParticipants([]);
394
+ setOpenAddPeople(false);
395
+ props.addedPeopleHandler();
396
+ }, e => {}, {
397
+ chatId: selectedChat.id,
398
+ participants: newParticipants
399
+ });
400
+ }
401
+ };
402
+
403
+ const handleClose = e => {
404
+ setNewParticipants([]);
405
+ setOpenAddPeople(false);
406
+ };
407
+
408
+ const openAddPeopleDialog = e => {
409
+ setOpenAddPeople(true);
410
+ };
411
+
412
+ const renderFileThumbnail = message => {
413
+ const {
414
+ documents
415
+ } = message;
416
+ const thumbnails = [];
417
+ documents.forEach((doc, index) => {
418
+ if (doc.type.includes('image')) {
419
+ return thumbnails.push( /*#__PURE__*/_react.default.createElement("div", {
420
+ style: {
421
+ borderBottom: '5px solid black'
422
+ }
423
+ }, /*#__PURE__*/_react.default.createElement("div", {
424
+ key: index,
425
+ className: 'col'
426
+ }, /*#__PURE__*/_react.default.createElement("img", {
427
+ key: index,
428
+ src: document.payload,
429
+ alt: "",
430
+ style: {
431
+ width: 250,
432
+ height: 'auto'
433
+ }
434
+ })), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
435
+ component: "span",
436
+ onClick: () => {
437
+ onDownload(documents[index]);
438
+ }
439
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
440
+ id: 'DOWNLOAD'
441
+ }))));
442
+ }
443
+
444
+ if (doc.type.includes('pdf')) {
445
+ thumbnails.push( /*#__PURE__*/_react.default.createElement("div", {
446
+ key: index,
447
+ style: {
448
+ borderBottom: '0.7px solid black'
449
+ }
450
+ }, /*#__PURE__*/_react.default.createElement("div", {
451
+ className: 'col'
452
+ }, /*#__PURE__*/_react.default.createElement("img", {
453
+ key: index,
454
+ src: require('../../assets/img/files/pdf.png'),
455
+ alt: "",
456
+ style: {
457
+ width: 250,
458
+ height: 'auto'
459
+ }
460
+ })), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
461
+ component: "span",
462
+ onClick: () => onDownload(documents[index])
463
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
464
+ id: 'DOWNLOAD'
465
+ }))));
466
+ } else if (doc.type.includes('doc')) {
467
+ thumbnails.push( /*#__PURE__*/_react.default.createElement("div", {
468
+ key: index,
469
+ style: {
470
+ borderBottom: '5px solid black'
471
+ }
472
+ }, /*#__PURE__*/_react.default.createElement("div", {
473
+ className: 'col'
474
+ }, /*#__PURE__*/_react.default.createElement("img", {
475
+ key: index,
476
+ src: require('../../assets/img/files/doc.png'),
477
+ alt: "",
478
+ style: {
479
+ width: 250,
480
+ height: 'auto'
481
+ }
482
+ })), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
483
+ component: "span",
484
+ onClick: () => onDownload(documents[index])
485
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
486
+ id: 'DOWNLOAD'
487
+ }))));
488
+ } else if (doc.type.includes('word')) {
489
+ thumbnails.push( /*#__PURE__*/_react.default.createElement("div", {
490
+ key: index,
491
+ style: {
492
+ borderBottom: '5px solid black'
493
+ }
494
+ }, /*#__PURE__*/_react.default.createElement("div", {
495
+ className: 'col'
496
+ }, /*#__PURE__*/_react.default.createElement("img", {
497
+ key: index,
498
+ src: require('../../assets/img/files/word.png'),
499
+ alt: "",
500
+ style: {
501
+ width: 250,
502
+ height: 'auto'
503
+ }
504
+ })), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
505
+ component: "span",
506
+ onClick: () => onDownload(documents[index])
507
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
508
+ id: 'DOWNLOAD'
509
+ }))));
510
+ } else if (doc.type.includes('xls')) {
511
+ thumbnails.push( /*#__PURE__*/_react.default.createElement("div", {
512
+ key: index,
513
+ style: {
514
+ borderBottom: '5px solid black'
515
+ }
516
+ }, /*#__PURE__*/_react.default.createElement("div", {
517
+ className: 'col'
518
+ }, /*#__PURE__*/_react.default.createElement("img", {
519
+ key: index,
520
+ src: require('../../assets/img/files/xls.png'),
521
+ alt: "",
522
+ style: {
523
+ width: 250,
524
+ height: 'auto'
525
+ }
526
+ })), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
527
+ component: "span",
528
+ onClick: () => onDownload(documents[index])
529
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
530
+ id: 'DOWNLOAD'
531
+ }))));
532
+ } else {
533
+ thumbnails.push( /*#__PURE__*/_react.default.createElement("div", {
534
+ key: index
535
+ }, /*#__PURE__*/_react.default.createElement("div", {
536
+ className: 'col',
537
+ style: {
538
+ borderBottom: '0.7px solid black',
539
+ paddingBottom: '8px',
540
+ borderWidth: '50%'
541
+ }
542
+ }, /*#__PURE__*/_react.default.createElement("img", {
543
+ key: index,
544
+ src: require('../../assets/img/files/php.png'),
545
+ alt: "",
546
+ style: {
547
+ width: 100,
548
+ height: 'auto'
549
+ }
550
+ }), /*#__PURE__*/_react.default.createElement("p", {
551
+ style: {
552
+ marginTop: '4px'
553
+ }
554
+ }, documents[index].name)), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
555
+ component: "span",
556
+ onClick: () => onDownload(documents[index])
557
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
558
+ id: 'DOWNLOAD'
559
+ }))));
560
+ }
561
+ });
562
+ return thumbnails;
563
+ };
564
+
565
+ const renderLink = ({
566
+ attributes,
567
+ content
568
+ }) => {
569
+ const {
570
+ href
571
+ } = attributes;
572
+ return /*#__PURE__*/_react.default.createElement("a", {
573
+ onClick: () => {
574
+ window.open(href);
575
+ }
576
+ }, content);
577
+ };
578
+
579
+ const deleteChatMessage = message => {
580
+ const participantsToSignalIds = participantsUserIds();
581
+
582
+ _SocketManager.default.emitEvent(_types.MessageType.DELETE_CHAT_MESSAGE, {
583
+ messageId: message.id,
584
+ participantsToSignalIds
585
+ }).then(data => {
586
+ message.active = false;
587
+ setRefresher(!refresher);
588
+ }).catch(error => {});
589
+ };
590
+
591
+ const renderMessages = (message, index) => {
592
+ if (!message.active) {
593
+ return /*#__PURE__*/_react.default.createElement("div", {
594
+ key: index,
595
+ className: 'chatroom__message row no-margin'
596
+ }, /*#__PURE__*/_react.default.createElement("div", {
597
+ className: message.participant.userId === currentUser.userId ? "mychat" : "peerchat"
598
+ }, message.participant.userId !== currentUser.userId && /*#__PURE__*/_react.default.createElement("div", {
599
+ style: {
600
+ paddingRight: '12px'
601
+ }
602
+ }, /*#__PURE__*/_react.default.createElement(_core.Avatar, null, _Utils.default.getInitials(message.participant.name))), /*#__PURE__*/_react.default.createElement("div", {
603
+ style: {
604
+ border: message.participant.userId === currentUser.userId ? null : "1px solid #525f7f",
605
+ borderRadius: message.participant.userId === currentUser.userId ? null : "16px",
606
+ padding: message.participant.userId === currentUser.userId ? null : "0 8px"
607
+ }
608
+ }, /*#__PURE__*/_react.default.createElement("div", {
609
+ className: 'row',
610
+ style: {
611
+ margin: '4px 0'
612
+ }
613
+ }, /*#__PURE__*/_react.default.createElement("div", {
614
+ className: 'col',
615
+ style: {
616
+ fontStyle: 'italic'
617
+ }
618
+ }, "deleted"), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
619
+ id: 'BLOCK'
620
+ }))))));
621
+ } else {
622
+ if (message.type === 'FILE') {
623
+ if (message.participant.userId === currentUser.userId) {
624
+ return /*#__PURE__*/_react.default.createElement("div", {
625
+ key: index,
626
+ className: "chatroom__message"
627
+ }, /*#__PURE__*/_react.default.createElement("div", {
628
+ className: "mychat"
629
+ }, /*#__PURE__*/_react.default.createElement("div", {
630
+ className: 'row',
631
+ style: {
632
+ margin: '4px 0 0 0'
633
+ }
634
+ }, /*#__PURE__*/_react.default.createElement("div", {
635
+ className: 'col chat-time'
636
+ }, (0, _moment.default)(message.createdDate).format('DD/MM, HH:mm')), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
637
+ component: "span",
638
+ onClick: () => {
639
+ deleteChatMessage(message);
640
+ }
641
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
642
+ id: 'DELETE'
643
+ })))), renderFileThumbnail(message), /*#__PURE__*/_react.default.createElement("p", {
644
+ key: index
645
+ }, message.content)));
646
+ }
647
+
648
+ return /*#__PURE__*/_react.default.createElement("div", {
649
+ key: index,
650
+ className: "chatroom__message"
651
+ }, /*#__PURE__*/_react.default.createElement("div", {
652
+ className: "peerchat"
653
+ }, /*#__PURE__*/_react.default.createElement(_core.Avatar, null, _Utils.default.getInitials(message.participant.name)), /*#__PURE__*/_react.default.createElement("div", {
654
+ className: "peer"
655
+ }, /*#__PURE__*/_react.default.createElement("span", null, message.participant.name), /*#__PURE__*/_react.default.createElement("span", null, (0, _moment.default)(message.createdDate).format('DD/MM, HH:mm')), /*#__PURE__*/_react.default.createElement("div", null, renderFileThumbnail(message)), /*#__PURE__*/_react.default.createElement("p", {
656
+ key: index
657
+ }, message.content))));
658
+ } else if (message.type === 'TEXT') {
659
+ if (message.participant.userId === currentUser.userId) {
660
+ return /*#__PURE__*/_react.default.createElement("div", {
661
+ key: index,
662
+ className: "chatroom__message"
663
+ }, /*#__PURE__*/_react.default.createElement("div", {
664
+ className: "mychat"
665
+ }, /*#__PURE__*/_react.default.createElement("div", {
666
+ className: 'row',
667
+ style: {
668
+ margin: '4px 0 0 0'
669
+ }
670
+ }, /*#__PURE__*/_react.default.createElement("div", {
671
+ className: 'col chat-time'
672
+ }, (0, _moment.default)(message.createdDate).format('DD/MM, HH:mm')), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
673
+ component: "span",
674
+ onClick: () => {
675
+ deleteChatMessage(message);
676
+ }
677
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
678
+ id: 'DELETE'
679
+ })))), /*#__PURE__*/_react.default.createElement(_linkifyReact.default, {
680
+ key: index,
681
+ options: {
682
+ render: renderLink
683
+ }
684
+ }, /*#__PURE__*/_react.default.createElement("div", {
685
+ key: index,
686
+ style: {
687
+ marginBottom: '4px'
688
+ }
689
+ }, message.content.split('\n').map((token, index) => {
690
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, token, /*#__PURE__*/_react.default.createElement("br", null));
691
+ })))));
692
+ }
693
+
694
+ return /*#__PURE__*/_react.default.createElement("div", {
695
+ key: index,
696
+ className: "chatroom__message"
697
+ }, /*#__PURE__*/_react.default.createElement("div", {
698
+ className: "peerchat"
699
+ }, /*#__PURE__*/_react.default.createElement(_core.Avatar, null, _Utils.default.getInitials(message.participant.name)), /*#__PURE__*/_react.default.createElement("div", {
700
+ className: "peer"
701
+ }, /*#__PURE__*/_react.default.createElement("span", null, message.participant.name), /*#__PURE__*/_react.default.createElement("span", null, (0, _moment.default)(message.createdDate).format('DD/MM, HH:mm')), /*#__PURE__*/_react.default.createElement(_linkifyReact.default, {
702
+ key: index,
703
+ options: {
704
+ render: renderLink
705
+ }
706
+ }, /*#__PURE__*/_react.default.createElement("div", {
707
+ key: index,
708
+ style: {
709
+ marginBottom: '4px'
710
+ }
711
+ }, message.content.split('\n').map((token, index) => {
712
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, token, /*#__PURE__*/_react.default.createElement("br", null));
713
+ }))))));
714
+ } else if (message.type === 'EVENT') {
715
+ return /*#__PURE__*/_react.default.createElement("div", {
716
+ className: "cv-poll-choice"
717
+ }, /*#__PURE__*/_react.default.createElement("span", {
718
+ className: "cv-poll-choice-details"
719
+ }, /*#__PURE__*/_react.default.createElement("span", {
720
+ className: "cv-choice-percentage"
721
+ }, /*#__PURE__*/_react.default.createElement(_icons.Info, {
722
+ className: "selected-choice-icon"
723
+ })), /*#__PURE__*/_react.default.createElement("span", {
724
+ className: "cv-choice-text"
725
+ }, message.content)), /*#__PURE__*/_react.default.createElement("span", {
726
+ className: 'cv-choice-percent-chart event',
727
+ style: {
728
+ width: '100%'
729
+ }
730
+ }));
731
+ } else {
732
+ return /*#__PURE__*/_react.default.createElement(_PollContainer.default, {
733
+ poll: message.poll,
734
+ chatTab: props.chatTab,
735
+ pollCreator: message.participant,
736
+ createdDate: message.createdDate,
737
+ submitPollVoteHandler: poll => submitPollVoteHandler(poll),
738
+ pollParticipantIDs: selectedChat.participants.map(p => p.userId),
739
+ currentUser: currentUser,
740
+ closePollHandler: (e, poll) => closePollHandler(e, poll),
741
+ numberOfPollParticipants: selectedChat.participants.length
742
+ });
743
+ }
744
+ }
745
+ };
746
+
747
+ if (selectedChat && messages) {
748
+ var _messages$sort;
749
+
750
+ return /*#__PURE__*/_react.default.createElement("div", {
751
+ className: "chatroom"
752
+ }, /*#__PURE__*/_react.default.createElement(_Dialog.default, {
753
+ open: openAddPeople,
754
+ onClose: handleClose
755
+ }, /*#__PURE__*/_react.default.createElement("div", {
756
+ style: {
757
+ width: '560px',
758
+ height: '100%',
759
+ maxHeight: '100%',
760
+ overflowX: 'hidden',
761
+ overflowY: 'auto',
762
+ padding: '32px',
763
+ backgroundColor: '#FFFFFF',
764
+ marginTop: '2px'
765
+ }
766
+ }, /*#__PURE__*/_react.default.createElement("h5", {
767
+ style: {
768
+ fontSize: '24px'
769
+ }
770
+ }, "Add People"), /*#__PURE__*/_react.default.createElement(_reactstrap.Form, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
771
+ style: {
772
+ marginTop: '8px'
773
+ }
774
+ }, /*#__PURE__*/_react.default.createElement(_AutoComplete.default, {
775
+ id: "participants",
776
+ label: 'Participants',
777
+ invalidText: 'invalid participants',
778
+ value: newParticipants,
779
+ multiple: true,
780
+ showImages: true,
781
+ searchAttribute: 'name',
782
+ validationRegex: /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,
783
+ valueChangeHandler: (value, id) => {
784
+ setNewParticipants(value);
785
+ },
786
+ optionsUrl: "".concat(_AppManager.default.getAPIHost(), "/api/v1/auth/search"),
787
+ fullWidth: true
788
+ }))))), /*#__PURE__*/_react.default.createElement(_DialogActions.default, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
789
+ onClick: handleClose
790
+ }, "CANCEL"), /*#__PURE__*/_react.default.createElement(_Button.default, {
791
+ onClick: addPeople,
792
+ variant: 'contained',
793
+ size: "large",
794
+ color: 'primary'
795
+ }, "ADD"))), /*#__PURE__*/_react.default.createElement("div", {
796
+ className: "chatroom__header"
797
+ }, /*#__PURE__*/_react.default.createElement("div", {
798
+ className: "chatroom__headerleft"
799
+ }, /*#__PURE__*/_react.default.createElement("div", {
800
+ className: 'chat-avatar'
801
+ }, /*#__PURE__*/_react.default.createElement(_core.Avatar, {
802
+ style: {
803
+ backgroundColor: props.chatTab ? 'transparent' : null
804
+ }
805
+ }, selectedChat.type === 'CALENDAR_MEETING' || selectedChat.participants.length > 2 ? /*#__PURE__*/_react.default.createElement(_reactFeather.Calendar, null) : _Utils.default.getInitials(selectedChat.participants.find(p => p.userId !== currentUser.userId).name))), /*#__PURE__*/_react.default.createElement("h5", null, getChatRoomTitle())), /*#__PURE__*/_react.default.createElement("div", {
806
+ className: "chatroom__headerright"
807
+ }, !props.chatTab && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
808
+ title: "Add People"
809
+ }, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
810
+ onClick: e => {
811
+ openAddPeopleDialog(e);
812
+ }
813
+ }, /*#__PURE__*/_react.default.createElement(_icons.GroupAdd, null)))), /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
814
+ title: "Poll"
815
+ }, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
816
+ onClick: e => {
817
+ setMode('POLL');
818
+ }
819
+ }, /*#__PURE__*/_react.default.createElement(_icons.Poll, {
820
+ style: {
821
+ color: props.chatTab ? 'white' : null,
822
+ marginTop: props.chatTab ? '8px' : null
823
+ }
824
+ }))))), mode === 'POLL' ? /*#__PURE__*/_react.default.createElement(_ChatPoll.default, {
825
+ chatTab: props.chatTab,
826
+ participants: selectedChat.participants,
827
+ createPollHandler: pollData => {
828
+ sendMessage(null, null, pollData);
829
+ setMode('CHAT');
830
+ },
831
+ cancelPollHandler: () => {
832
+ setMode('CHAT');
833
+ }
834
+ }) : /*#__PURE__*/_react.default.createElement("div", {
835
+ id: "messages",
836
+ className: "chatroom__body"
837
+ }, (_messages$sort = messages.sort((a, b) => new Date(a.createdDate) - new Date(b.createdDate))) === null || _messages$sort === void 0 ? void 0 : _messages$sort.map(renderMessages), /*#__PURE__*/_react.default.createElement("div", {
838
+ ref: messagesEndRef
839
+ }, "\xA0")), mode === 'CHAT' && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("form", {
840
+ className: "chatroom__sendMessage"
841
+ }, /*#__PURE__*/_react.default.createElement("div", {
842
+ className: "message__imageSelector",
843
+ style: {
844
+ width: '72px'
845
+ }
846
+ }), /*#__PURE__*/_react.default.createElement("div", {
847
+ className: 'chat-input',
848
+ style: {
849
+ position: 'relative'
850
+ }
851
+ }, /*#__PURE__*/_react.default.createElement("div", {
852
+ className: "file-upload chats-file-upload",
853
+ style: {
854
+ zIndex: !_Utils.default.isNull(documents) ? 1 : 0
855
+ }
856
+ }, /*#__PURE__*/_react.default.createElement(_File.default, {
857
+ enableFile: true,
858
+ multiple: true,
859
+ id: 'documents',
860
+ iconColor: props.chatTab ? 'white' : null,
861
+ value: documents,
862
+ clearUploadedFileSwitch: clearUploadedFileSwitch,
863
+ valueChangeHandler: (value, id) => {
864
+ setDocuments(value);
865
+ }
866
+ })), /*#__PURE__*/_react.default.createElement(_CustomInput.default, {
867
+ style: {
868
+ zIndex: !_Utils.default.isNull(documents) ? 0 : 1,
869
+ color: props.chatTab ? 'white' : null
870
+ },
871
+ labelText: documents ? "" : "Type a new message",
872
+ disabled: !_Utils.default.isNull(documents),
873
+ multiline: true,
874
+ id: "message",
875
+ formControlProps: {
876
+ fullWidth: true
877
+ },
878
+ color: props.chatTab ? 'white' : null,
879
+ autoFocus: true,
880
+ inputProps: {
881
+ endAdornment: /*#__PURE__*/_react.default.createElement(_InputAdornment.default, {
882
+ position: "end"
883
+ }, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
884
+ style: _LoginStyle.default.inputAdornmentIcon,
885
+ type: "submit",
886
+ onClick: e => {
887
+ sendMessage(e);
888
+ }
889
+ }, /*#__PURE__*/_react.default.createElement(_Send.default, {
890
+ style: {
891
+ fontSize: '24px',
892
+ color: props.chatTab ? 'white' : null
893
+ }
894
+ }))),
895
+ value: message,
896
+ onChange: e => {
897
+ handleChange(e);
898
+ }
899
+ }
900
+ })))));
901
+ } else if (!loading && selectedChat) {
902
+ return /*#__PURE__*/_react.default.createElement("div", {
903
+ className: 'centered-flex-box'
904
+ }, /*#__PURE__*/_react.default.createElement("div", {
905
+ className: "emptychat"
906
+ }, /*#__PURE__*/_react.default.createElement("p", {
907
+ className: 'centered-flex-box',
908
+ style: {
909
+ fontSize: '20px',
910
+ fontWeight: 'bold'
911
+ }
912
+ }, "You're starting a new conversation"), /*#__PURE__*/_react.default.createElement("p", {
913
+ className: 'centered-flex-box',
914
+ style: {
915
+ fontSize: '16px'
916
+ }
917
+ }, "Type your first message below"), /*#__PURE__*/_react.default.createElement(_LottieIcon.default, {
918
+ id: 'chat'
919
+ })));
920
+ } else {
921
+ return null;
922
+ }
923
+ };
924
+
925
+ var _default = ChatRoom;
926
+ exports.default = _default;