diff --git a/packages/frontend/src/pages/chat/XMessage.vue b/packages/frontend/src/pages/chat/XMessage.vue index b1be8d5fd4..3eb2ae8092 100644 --- a/packages/frontend/src/pages/chat/XMessage.vue +++ b/packages/frontend/src/pages/chat/XMessage.vue @@ -25,8 +25,8 @@ SPDX-License-Identifier: AGPL-3.0-only
- {{ message.toRoom?.name }} - @{{ message.toUser?.username }} + {{ message.toRoom.name }} + @{{ message.toUser.username }}
-
+
r.user?.id === $i.id && r.reaction === record.reaction)) { + if (!props.message.reactions.some(r => r.user.id === $i.id && r.reaction === record.reaction)) { sound.playMisskeySfx('reaction'); misskeyApi('chat/messages/react', { messageId: props.message.id, diff --git a/packages/frontend/src/pages/chat/room.members.vue b/packages/frontend/src/pages/chat/room.members.vue index 80e387d179..5a574068cb 100644 --- a/packages/frontend/src/pages/chat/room.members.vue +++ b/packages/frontend/src/pages/chat/room.members.vue @@ -14,8 +14,8 @@ SPDX-License-Identifier: AGPL-3.0-only
- - + +
diff --git a/packages/frontend/src/pages/chat/room.vue b/packages/frontend/src/pages/chat/room.vue index 4932ac722d..664f421c5c 100644 --- a/packages/frontend/src/pages/chat/room.vue +++ b/packages/frontend/src/pages/chat/room.vue @@ -178,10 +178,10 @@ async function initialize() { connection.value = useStream().useChannel('chatUser', { otherId: user.value.id, }); - connection.value?.on('message', onMessage); - connection.value?.on('deleted', onDeleted); - connection.value?.on('react', onReact); - connection.value?.on('unreact', onUnreact); + connection.value.on('message', onMessage); + connection.value.on('deleted', onDeleted); + connection.value.on('react', onReact); + connection.value.on('unreact', onUnreact); } else { const [r, m] = await Promise.all([ misskeyApi('chat/rooms/show', { roomId: props.roomId }), @@ -272,10 +272,10 @@ function onReact(ctx: Parameters[0] | Parameters[0]) { const message = messages.value.find(m => m.id === ctx.messageId); - if (message && ctx.user != null) { + if (message) { const index = message.reactions.findIndex(r => r.reaction === ctx.reaction && r.user.id === ctx.user!.id); if (index !== -1) { message.reactions.splice(index, 1); @@ -318,12 +318,14 @@ async function inviteUser() { const invitee = await os.selectUser({ includeSelf: false, localOnly: true }); os.apiWithDialog('chat/rooms/invitations/create', { - roomId: room.value?.id, + roomId: room.value.id, userId: invitee.id, }); } async function leaveRoom() { + if (room.value == null) return; + const { canceled } = await os.confirm({ type: 'warning', text: i18n.ts.areYouSure, @@ -331,7 +333,7 @@ async function leaveRoom() { if (canceled) return; misskeyApi('chat/rooms/leave', { - roomId: room.value?.id, + roomId: room.value.id, }); router.push('/chat'); }