feat: add dm_typing_stop event to clear typing indicator on message send

Broadcasts dm_typing_stop to DM members before dm_message_created,
so the typing indicator clears immediately when a message arrives
instead of lingering for up to 3 seconds after delivery.
This commit is contained in:
Jannis Braun
2026-04-01 12:50:03 +02:00
parent 3464e9d991
commit 187f71e68e
4 changed files with 26 additions and 1 deletions
+11
View File
@@ -180,6 +180,17 @@ export function broadcastDmMessage(dmChannelId: string, message: DmMessageWithUs
.where(eq(schema.dmMembers.dmChannelId, dmChannelId))
.all();
// Clear typing indicator for the message author — the message itself proves they stopped
for (const member of dmMembers) {
if (member.userId !== message.userId) {
connectionManager.sendToUser(member.userId, {
type: 'dm_typing_stop',
dmChannelId,
userId: message.userId,
});
}
}
for (const member of dmMembers) {
// If this member had closed the DM, resurface it first
if (member.closed === 1) {