Skip to content

Commit 239db31

Browse files
committed
(fix) remove footer parent ref logic
1 parent a1d7f87 commit 239db31

File tree

2 files changed

+32
-26
lines changed

2 files changed

+32
-26
lines changed

src/lib/Room/Room.vue

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@
125125
</div>
126126

127127
<room-footer
128-
ref="roomFooterParent"
129128
:room="room"
129+
:room-id="roomId"
130130
:room-message="roomMessage"
131131
:text-messages="textMessages"
132132
:show-send-icon="showSendIcon"
@@ -143,6 +143,8 @@
143143
:link-options="linkOptions"
144144
:audio-bit-rate="audioBitRate"
145145
:audio-sample-rate="audioSampleRate"
146+
:init-reply-message="initReplyMessage"
147+
:init-edit-message="initEditMessage"
146148
@update-edited-message-id="editedMessageId = $event"
147149
@edit-message="$emit('edit-message', $event)"
148150
@send-message="$emit('send-message', $event)"
@@ -229,6 +231,8 @@ export default {
229231
data() {
230232
return {
231233
editedMessageId: null,
234+
initReplyMessage: null,
235+
initEditMessage: null,
232236
infiniteState: null,
233237
loadingMessages: false,
234238
observer: null,
@@ -248,7 +252,7 @@ export default {
248252
},
249253
showNoMessages() {
250254
return (
251-
this.room.roomId &&
255+
this.roomId &&
252256
!this.messages.length &&
253257
!this.loadingMessages &&
254258
!this.loadingRooms
@@ -257,7 +261,7 @@ export default {
257261
showNoRoom() {
258262
const noRoomSelected =
259263
(!this.rooms.length && !this.loadingRooms) ||
260-
(!this.room.roomId && !this.loadFirstRoom)
264+
(!this.roomId && !this.loadFirstRoom)
261265
262266
if (noRoomSelected) {
263267
this.loadingMessages = false /* eslint-disable-line vue/no-side-effects-in-computed-properties */
@@ -278,13 +282,8 @@ export default {
278282
setTimeout(() => this.initIntersectionObserver())
279283
}
280284
},
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()
288287
},
289288
messages: {
290289
deep: true,
@@ -364,9 +363,6 @@ export default {
364363
observer.observe(container.children[i])
365364
}
366365
},
367-
getFooterParentRef() {
368-
return this.$refs.roomFooterParent
369-
},
370366
touchStart(touchEvent) {
371367
if (this.singleRoom) return
372368
@@ -400,15 +396,6 @@ export default {
400396
this.scrollMessagesCount = 0
401397
this.resetMessageSelection()
402398
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-
412399
if (!this.messages.length && this.messagesLoaded) {
413400
this.loadingMessages = false
414401
}
@@ -494,7 +481,7 @@ export default {
494481
() => {
495482
if (this.loadingMoreMessages) return
496483
497-
if (this.messagesLoaded || !this.room.roomId) {
484+
if (this.messagesLoaded || !this.roomId) {
498485
this.loadingMoreMessages = false
499486
this.showLoader = false
500487
return
@@ -511,9 +498,11 @@ export default {
511498
messageActionHandler({ action, message }) {
512499
switch (action.name) {
513500
case 'replyMessage':
514-
return this.getFooterParentRef().replyMessage(message)
501+
this.initReplyMessage = message
502+
return
515503
case 'editMessage':
516-
return this.getFooterParentRef().editMessage(message)
504+
this.initEditMessage = message
505+
return
517506
case 'deleteMessage':
518507
return this.$emit('delete-message', message)
519508
case 'selectMessages':

src/lib/Room/RoomFooter/RoomFooter.vue

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ export default {
227227
228228
props: {
229229
room: { type: Object, required: true },
230+
roomId: { type: [String, Number], required: true },
230231
roomMessage: { type: String, default: null },
231232
textFormatting: { type: Object, required: true },
232233
linkOptions: { type: Object, required: true },
@@ -242,7 +243,9 @@ export default {
242243
emojisSuggestionEnabled: { type: Boolean, required: true },
243244
templatesText: { type: Array, default: null },
244245
audioBitRate: { type: Number, required: true },
245-
audioSampleRate: { type: Number, required: true }
246+
audioSampleRate: { type: Number, required: true },
247+
initReplyMessage: { type: Object, default: null },
248+
initEditMessage: { type: Object, default: null }
246249
},
247250
248251
emits: [
@@ -302,6 +305,14 @@ export default {
302305
},
303306
304307
watch: {
308+
roomId() {
309+
this.resetMessage(true, true)
310+
311+
if (this.roomMessage) {
312+
this.message = this.roomMessage
313+
setTimeout(() => this.onChangeInput())
314+
}
315+
},
305316
message(val) {
306317
this.getTextareaRef().value = val
307318
},
@@ -313,6 +324,12 @@ export default {
313324
},
314325
editedMessage(val) {
315326
this.$emit('update-edited-message-id', val._id)
327+
},
328+
initReplyMessage(val) {
329+
this.replyMessage(val)
330+
},
331+
initEditMessage(val) {
332+
this.editMessage(val)
316333
}
317334
},
318335

0 commit comments

Comments
 (0)