feat: add typing mode controls

This commit is contained in:
Peter Steinberger
2026-01-07 21:58:54 +00:00
parent 430662f6ef
commit bac1608933
14 changed files with 307 additions and 20 deletions

View File

@@ -0,0 +1,25 @@
import type { TypingMode } from "../../config/types.js";
export type TypingModeContext = {
configured?: TypingMode;
isGroupChat: boolean;
wasMentioned: boolean;
isHeartbeat: boolean;
};
export const DEFAULT_GROUP_TYPING_MODE: TypingMode = "message";
export function resolveTypingMode({
configured,
isGroupChat,
wasMentioned,
isHeartbeat,
}: TypingModeContext): TypingMode {
if (isHeartbeat) return "never";
if (configured) return configured;
if (!isGroupChat || wasMentioned) return "instant";
return DEFAULT_GROUP_TYPING_MODE;
}
export const shouldStartTypingImmediately = (mode: TypingMode) =>
mode === "instant";