Add typing indicator after IPC send

After sending via IPC, automatically show "composing" indicator so
user knows more messages may be coming from the running session.
This commit is contained in:
Peter Steinberger
2025-12-02 06:58:17 +00:00
parent e881b3c5de
commit 96152f6577
3 changed files with 16 additions and 1 deletions

View File

@@ -702,7 +702,7 @@ export async function monitorWebProvider(
// Start IPC server so `warelay send` can use this connection
// instead of creating a new one (which would corrupt Signal session)
if ("sendMessage" in listener) {
if ("sendMessage" in listener && "sendComposingTo" in listener) {
startIpcServer(async (to, message, mediaUrl) => {
let mediaBuffer: Buffer | undefined;
let mediaType: string | undefined;
@@ -721,6 +721,12 @@ export async function monitorWebProvider(
}
}
logInfo(`📤 IPC send to ${to}: ${message.substring(0, 50)}...`, runtime);
// Show typing indicator after send so user knows more may be coming
try {
await listener.sendComposingTo(to);
} catch {
// Ignore typing indicator errors - not critical
}
return result;
});
}

View File

@@ -257,6 +257,14 @@ export async function monitorWebInbox(options: {
const result = await sock.sendMessage(jid, payload);
return { messageId: result?.key?.id ?? "unknown" };
},
/**
* Send typing indicator ("composing") to a chat.
* Used after IPC send to show more messages are coming.
*/
sendComposingTo: async (to: string): Promise<void> => {
const jid = `${to.replace(/^\+/, "")}@s.whatsapp.net`;
await sock.sendPresenceUpdate("composing", jid);
},
} as const;
}