125
125
</div >
126
126
127
127
<room-footer
128
- ref =" roomFooterParent"
129
128
:room =" room"
129
+ :room-id =" roomId"
130
130
:room-message =" roomMessage"
131
131
:text-messages =" textMessages"
132
132
:show-send-icon =" showSendIcon"
143
143
:link-options =" linkOptions"
144
144
:audio-bit-rate =" audioBitRate"
145
145
:audio-sample-rate =" audioSampleRate"
146
+ :init-reply-message =" initReplyMessage"
147
+ :init-edit-message =" initEditMessage"
146
148
@update-edited-message-id =" editedMessageId = $event"
147
149
@edit-message =" $emit('edit-message', $event)"
148
150
@send-message =" $emit('send-message', $event)"
@@ -229,6 +231,8 @@ export default {
229
231
data () {
230
232
return {
231
233
editedMessageId: null ,
234
+ initReplyMessage: null ,
235
+ initEditMessage: null ,
232
236
infiniteState: null ,
233
237
loadingMessages: false ,
234
238
observer: null ,
@@ -248,7 +252,7 @@ export default {
248
252
},
249
253
showNoMessages () {
250
254
return (
251
- this .room . roomId &&
255
+ this .roomId &&
252
256
! this .messages .length &&
253
257
! this .loadingMessages &&
254
258
! this .loadingRooms
@@ -257,7 +261,7 @@ export default {
257
261
showNoRoom () {
258
262
const noRoomSelected =
259
263
(! this .rooms .length && ! this .loadingRooms ) ||
260
- (! this .room . roomId && ! this .loadFirstRoom )
264
+ (! this .roomId && ! this .loadFirstRoom )
261
265
262
266
if (noRoomSelected) {
263
267
this .loadingMessages = false /* eslint-disable-line vue/no-side-effects-in-computed-properties */
@@ -278,13 +282,8 @@ export default {
278
282
setTimeout (() => this .initIntersectionObserver ())
279
283
}
280
284
},
281
- room: {
282
- immediate: true ,
283
- handler (newVal , oldVal ) {
284
- if (newVal .roomId && (! oldVal || newVal .roomId !== oldVal .roomId )) {
285
- this .onRoomChanged ()
286
- }
287
- }
285
+ roomId () {
286
+ this .onRoomChanged ()
288
287
},
289
288
messages: {
290
289
deep: true ,
@@ -364,9 +363,6 @@ export default {
364
363
observer .observe (container .children [i])
365
364
}
366
365
},
367
- getFooterParentRef () {
368
- return this .$refs .roomFooterParent
369
- },
370
366
touchStart (touchEvent ) {
371
367
if (this .singleRoom ) return
372
368
@@ -400,15 +396,6 @@ export default {
400
396
this .scrollMessagesCount = 0
401
397
this .resetMessageSelection ()
402
398
403
- if (this .getFooterParentRef ()) {
404
- this .getFooterParentRef ().resetMessage (true , true )
405
-
406
- if (this .roomMessage ) {
407
- this .getFooterParentRef ().message = this .roomMessage
408
- setTimeout (() => this .getFooterParentRef ().onChangeInput ())
409
- }
410
- }
411
-
412
399
if (! this .messages .length && this .messagesLoaded ) {
413
400
this .loadingMessages = false
414
401
}
@@ -494,7 +481,7 @@ export default {
494
481
() => {
495
482
if (this .loadingMoreMessages ) return
496
483
497
- if (this .messagesLoaded || ! this .room . roomId ) {
484
+ if (this .messagesLoaded || ! this .roomId ) {
498
485
this .loadingMoreMessages = false
499
486
this .showLoader = false
500
487
return
@@ -511,9 +498,11 @@ export default {
511
498
messageActionHandler ({ action, message }) {
512
499
switch (action .name ) {
513
500
case ' replyMessage' :
514
- return this .getFooterParentRef ().replyMessage (message)
501
+ this .initReplyMessage = message
502
+ return
515
503
case ' editMessage' :
516
- return this .getFooterParentRef ().editMessage (message)
504
+ this .initEditMessage = message
505
+ return
517
506
case ' deleteMessage' :
518
507
return this .$emit (' delete-message' , message)
519
508
case ' selectMessages' :
0 commit comments