diff --git a/src/components/RightSidebar/Participants/ParticipantsTab.vue b/src/components/RightSidebar/Participants/ParticipantsTab.vue index 25c4e4c14de..b3a31eb52ae 100644 --- a/src/components/RightSidebar/Participants/ParticipantsTab.vue +++ b/src/components/RightSidebar/Participants/ParticipantsTab.vue @@ -83,6 +83,7 @@ import ParticipantsListVirtual from './ParticipantsList/ParticipantsListVirtual. import ParticipantsSearchResults from './ParticipantsSearchResults/ParticipantsSearchResults.vue' import { useSortParticipants } from '../../../composables/useSortParticipants.js' +import { useIsInCall } from '../../../composables/useIsInCall.js' import getParticipants from '../../../mixins/getParticipants.js' import { searchPossibleConversations } from '../../../services/conversationsService.js' import { EventBus } from '../../../services/EventBus.js' @@ -122,9 +123,11 @@ export default { setup() { const { sortParticipants } = useSortParticipants() + const isInCall = useIsInCall() return { sortParticipants, + isInCall, } }, @@ -185,6 +188,12 @@ export default { watch: { searchText(value) { this.isFocused = !!value + }, + + isActive(value) { + if (value && this.pendingChanges) { + this.debounceUpdateParticipants() + } } }, diff --git a/src/mixins/getParticipants.js b/src/mixins/getParticipants.js index e4a46cfc783..f88730c67a1 100644 --- a/src/mixins/getParticipants.js +++ b/src/mixins/getParticipants.js @@ -34,6 +34,7 @@ const getParticipants = { return { participantsInitialised: false, fetchingParticipants: false, + pendingChanges: false, } }, @@ -79,7 +80,9 @@ const getParticipants = { }, debounceUpdateParticipants() { - if (!this.isActive) { + if (!this.isActive && !this.isInCall) { + // Update is ignored but there is a flag to force the participants update + this.pendingChanges = true return } @@ -88,7 +91,7 @@ const getParticipants = { } else { this.debounceSlowUpdateParticipants() } - + this.pendingChanges = false }, debounceSlowUpdateParticipants: debounce(function() {