Skip to content

Commit 0186ae0

Browse files
authored
Merge pull request #392 from NINI1988/fix-multiple-chat-windows
Fix element selectors fix #368
2 parents 3fa0523 + 6aa27cb commit 0186ae0

File tree

11 files changed

+19
-68
lines changed

11 files changed

+19
-68
lines changed

src/components/EmojiPickerContainer/EmojiPickerContainer.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
<script>
3939
import SvgIcon from '../SvgIcon/SvgIcon'
40+
import { findParentBySelector } from '../../utils/element-selector'
4041
4142
export default {
4243
name: 'EmojiPickerContainer',
@@ -121,9 +122,7 @@ export default {
121122
},
122123
setEmojiPickerPosition(clientY, innerWidth, innerHeight) {
123124
const mobileSize = innerWidth < 500 || innerHeight < 700
124-
const roomFooterRef = document
125-
.querySelector('vue-advanced-chat')
126-
.shadowRoot.getElementById('room-footer')
125+
const roomFooterRef = findParentBySelector(this.$el, '#room-footer')
127126
128127
if (!roomFooterRef) {
129128
if (mobileSize) this.emojiPickerRight = '-50px'

src/lib/Room/Room.vue

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -335,15 +335,11 @@ export default {
335335
this.observer.disconnect()
336336
}
337337
338-
const loader = document
339-
.querySelector('vue-advanced-chat')
340-
.shadowRoot.getElementById('infinite-loader-messages')
338+
const loader = this.$el.querySelector('#infinite-loader-messages')
341339
342340
if (loader) {
343341
const options = {
344-
root: document
345-
.querySelector('vue-advanced-chat')
346-
.shadowRoot.getElementById('messages-list'),
342+
root: this.$el.querySelector('#messages-list'),
347343
rootMargin: `${this.scrollDistance}px`,
348344
threshold: 0
349345
}

src/lib/Room/RoomFooter/RoomEmojis/RoomEmojis.vue

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
<template>
22
<transition name="vac-slide-up">
3-
<div
4-
v-if="filteredEmojis.length"
5-
class="vac-emojis-container"
6-
:style="{ bottom: `${footerHeight}px` }"
7-
>
3+
<div v-if="filteredEmojis.length" class="vac-emojis-container">
84
<div
95
v-for="(emoji, index) in filteredEmojis"
106
:key="emoji"
@@ -37,14 +33,6 @@ export default {
3733
}
3834
},
3935
40-
computed: {
41-
footerHeight() {
42-
return document
43-
.querySelector('vue-advanced-chat')
44-
.shadowRoot.getElementById('room-footer').clientHeight
45-
}
46-
},
47-
4836
watch: {
4937
filteredEmojis(val, oldVal) {
5038
if (!oldVal.length || val.length !== oldVal.length) {

src/lib/Room/RoomFooter/RoomFiles/RoomFiles.vue

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
<div
44
v-if="files.length"
55
class="vac-room-files-container"
6-
:style="{ bottom: `${footerHeight}px` }"
76
>
87
<div class="vac-files-box">
98
<div v-for="(file, i) in files" :key="i">
@@ -49,11 +48,6 @@ export default {
4948
emits: ['remove-file', 'reset-message'],
5049
5150
computed: {
52-
footerHeight() {
53-
return document
54-
.querySelector('vue-advanced-chat')
55-
.shadowRoot.getElementById('room-footer').clientHeight
56-
}
5751
}
5852
}
5953
</script>

src/lib/Room/RoomFooter/RoomMessageReply/RoomMessageReply.vue

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
<div
44
v-if="messageReply"
55
class="vac-reply-container"
6-
:style="{ bottom: `${footerHeight}px` }"
76
>
87
<div class="vac-reply-box">
98
<div class="vac-reply-info">
@@ -98,11 +97,6 @@ export default {
9897
emits: ['reset-message'],
9998
10099
computed: {
101-
footerHeight() {
102-
return document
103-
.querySelector('vue-advanced-chat')
104-
.shadowRoot.getElementById('room-footer').clientHeight
105-
},
106100
firstFile() {
107101
return this.messageReply?.files?.length ? this.messageReply.files[0] : {}
108102
},

src/lib/Room/RoomFooter/RoomTemplatesText/RoomTemplatesText.vue

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
<div
44
v-if="filteredTemplatesText.length"
55
class="vac-template-container vac-app-box-shadow"
6-
:style="{ bottom: `${footerHeight}px` }"
76
>
87
<div
98
v-for="(template, index) in filteredTemplatesText"
@@ -44,14 +43,6 @@ export default {
4443
}
4544
},
4645
47-
computed: {
48-
footerHeight() {
49-
return document
50-
.querySelector('vue-advanced-chat')
51-
.shadowRoot.getElementById('room-footer').clientHeight
52-
}
53-
},
54-
5546
watch: {
5647
filteredTemplatesText(val, oldVal) {
5748
if (!oldVal.length || val.length !== oldVal.length) {

src/lib/Room/RoomFooter/RoomUsersTag/RoomUsersTag.vue

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
<template>
22
<transition name="vac-slide-up">
3-
<div
4-
v-if="filteredUsersTag.length"
5-
class="vac-tags-container"
6-
:style="{ bottom: `${footerHeight}px` }"
7-
>
3+
<div v-if="filteredUsersTag.length" class="vac-tags-container">
84
<div
95
v-for="(user, index) in filteredUsersTag"
106
:key="user._id"
@@ -46,14 +42,6 @@ export default {
4642
}
4743
},
4844
49-
computed: {
50-
footerHeight() {
51-
return document
52-
.querySelector('vue-advanced-chat')
53-
.shadowRoot.getElementById('room-footer').clientHeight
54-
}
55-
},
56-
5745
watch: {
5846
filteredUsersTag(val, oldVal) {
5947
if (!oldVal.length || val.length !== oldVal.length) {

src/lib/Room/RoomMessage/AudioPlayer/AudioPlayer.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,7 @@ export default {
6262
},
6363
6464
mounted() {
65-
this.player = document
66-
.querySelector('vue-advanced-chat')
67-
.shadowRoot.getElementById(this.playerUniqId)
65+
this.player = this.$el.querySelector('#' + this.playerUniqId)
6866
6967
this.player.addEventListener('ended', () => {
7068
this.isPlaying = false

src/lib/Room/RoomMessage/MessageActions/MessageActions.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ import vClickOutside from '../../../../utils/on-click-outside'
9090
9191
import SvgIcon from '../../../../components/SvgIcon/SvgIcon'
9292
import EmojiPickerContainer from '../../../../components/EmojiPickerContainer/EmojiPickerContainer'
93+
import { findParentBySelector } from '../../../../utils/element-selector'
9394
9495
export default {
9596
name: 'MessageActions',
@@ -170,9 +171,7 @@ export default {
170171
if (!this.optionsOpened) return
171172
172173
setTimeout(() => {
173-
const roomFooterRef = document
174-
.querySelector('vue-advanced-chat')
175-
.shadowRoot.getElementById('room-footer')
174+
const roomFooterRef = findParentBySelector(this.$el, '#room-footer')
176175
177176
if (
178177
!roomFooterRef ||

src/lib/RoomsList/RoomsList.vue

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,15 +170,11 @@ export default {
170170
this.observer.disconnect()
171171
}
172172
173-
const loader = document
174-
.querySelector('vue-advanced-chat')
175-
.shadowRoot.getElementById('infinite-loader-rooms')
173+
const loader = this.$el.querySelector('#infinite-loader-rooms')
176174
177175
if (loader) {
178176
const options = {
179-
root: document
180-
.querySelector('vue-advanced-chat')
181-
.shadowRoot.getElementById('rooms-list'),
177+
root: this.$el.querySelector('#rooms-list'),
182178
rootMargin: `${this.scrollDistance}px`,
183179
threshold: 0
184180
}

0 commit comments

Comments
 (0)