From 8a1ff52a61b8a6569447354e71651fe18603a8db Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Fri, 27 Mar 2026 15:10:38 +0100 Subject: [PATCH] feat(chat): enhance room entry announcement logic in MultiChatDialog.vue - Introduced a new property `lastAnnouncedRoomName` to track the last announced room, preventing redundant announcements. - Updated the room entry announcement logic to ensure messages are sent only when entering a new room, improving clarity for users. --- .../src/dialogues/chat/MultiChatDialog.vue | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/src/dialogues/chat/MultiChatDialog.vue b/frontend/src/dialogues/chat/MultiChatDialog.vue index 9b0b45f..d5f177d 100644 --- a/frontend/src/dialogues/chat/MultiChatDialog.vue +++ b/frontend/src/dialogues/chat/MultiChatDialog.vue @@ -319,6 +319,7 @@ export default { urlOverride: '', token: null, announcedRoomEnter: false, + lastAnnouncedRoomName: '', showColorPicker: false, showRoomCreatePanel: false, adultOnlyMode: false, @@ -769,6 +770,7 @@ export default { this.loadRoomCreateOptions(); this.loadOwnRooms(); this.announcedRoomEnter = false; + this.lastAnnouncedRoomName = ''; this.$refs.dialog.open(); this.opened = true; // Stelle die WS-Verbindung her, wenn der Dialog geƶffnet wird @@ -1086,6 +1088,7 @@ export default { this.chatWs = null; this.chatConnected = false; this.announcedRoomEnter = false; + this.lastAnnouncedRoomName = ''; this.currentRoomName = ''; this.roomSyncInFlight = false; this.usersInRoom = []; @@ -1199,15 +1202,12 @@ export default { return; } // Eigene Beitrittsmeldung einmalig mit Raumname anzeigen - if (!this.announcedRoomEnter || (this.adultOnlyMode && actualRoom && desiredRoom && actualRoom === desiredRoom)) { - const room = actualRoom || this.getSelectedRoomName(); - if (room) { - const text = this.$t('chat.multichat.system.room_entered', { room }); - this.messages.push({ id: msg.id || Date.now(), user: 'System', text }); - } - if (!this.adultOnlyMode || !desiredRoom || actualRoom === desiredRoom) { - this.announcedRoomEnter = true; - } + const room = actualRoom || this.getSelectedRoomName(); + if (room && this.lastAnnouncedRoomName !== room) { + const text = this.$t('chat.multichat.system.room_entered', { room }); + this.messages.push({ id: msg.id || Date.now(), user: 'System', text }); + this.lastAnnouncedRoomName = room; + this.announcedRoomEnter = true; } return; }