From f2655ffb7d9c7ef703a1b6cd75e1019217e063ec Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 12 Feb 2021 09:47:08 +0100 Subject: [PATCH] Remove current room from RoomSelector Expose the Talk Vue instance on OCA.Talk.instance. In RoomSelector, grab the current room from that instance to filter it out, when applicableRemove current room from RoomSelector Expose the Talk Vue instance on OCA.Talk.instance. In RoomSelector, grab the current room from that instance to filter it out, when applicable. Signed-off-by: Vincent Petry --- src/main.js | 7 ++++++- src/views/RoomSelector.vue | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main.js b/src/main.js index c21ed9643672..49d6a18e6d56 100644 --- a/src/main.js +++ b/src/main.js @@ -71,7 +71,7 @@ Vue.use(VueObserveVisibility) Vue.use(VueShortKey, { prevent: ['input', 'textarea', 'div'] }) Vue.use(vOutsideEvents) -export default new Vue({ +const instance = new Vue({ el: '#content', store, router, @@ -155,3 +155,8 @@ Sidebar.prototype.close = function() { Object.assign(window.OCA.Files, { Sidebar: new Sidebar(), }) + +// make the instance available to global components that might run on the same page +OCA.Talk.instance = instance + +export default instance diff --git a/src/views/RoomSelector.vue b/src/views/RoomSelector.vue index db0796c19506..ec9dca1654f6 100644 --- a/src/views/RoomSelector.vue +++ b/src/views/RoomSelector.vue @@ -87,6 +87,7 @@ export default { return { rooms: [], selectedRoom: null, + currentRoom: null, loading: true, } }, @@ -94,6 +95,7 @@ export default { availableRooms() { return this.rooms.filter((room) => { return room.type !== CONVERSATION.TYPE.CHANGELOG + && (!this.currentRoom || this.currentRoom !== room.token) && (!this.showPostableOnly || room.readOnly === CONVERSATION.STATE.READ_WRITE) && room.objectType !== 'file' && room.objectType !== 'share:password' @@ -102,6 +104,11 @@ export default { }, beforeMount() { this.fetchRooms() + + const $store = OCA.Talk?.instance?.$store + if ($store) { + this.currentRoom = $store.getters.getToken() + } }, methods: { fetchRooms() {