diff --git a/frontend/src/dialogues/chat/MultiChatDialog.vue b/frontend/src/dialogues/chat/MultiChatDialog.vue index 9146e4d..024a04f 100644 --- a/frontend/src/dialogues/chat/MultiChatDialog.vue +++ b/frontend/src/dialogues/chat/MultiChatDialog.vue @@ -1179,6 +1179,12 @@ export default { if (this.joinFallbackTimer) { clearTimeout(this.joinFallbackTimer); this.joinFallbackTimer = null; } const actualRoom = msg.to || msg.room || msg.roomName || ''; const desiredRoom = this.resolveInitialRoomName(); + if (actualRoom) { + const matchingRoom = this.rooms.find((room) => (room.title || room.name) === actualRoom); + if (matchingRoom) { + this.selectedRoom = matchingRoom.id; + } + } if ( this.adultOnlyMode && desiredRoom @@ -1194,13 +1200,15 @@ export default { return; } // Eigene Beitrittsmeldung einmalig mit Raumname anzeigen - if (!this.announcedRoomEnter) { + 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 }); } - this.announcedRoomEnter = true; + if (!this.adultOnlyMode || !desiredRoom || actualRoom === desiredRoom) { + this.announcedRoomEnter = true; + } } return; }