Files
kandev/apps/web/lib/utils/pending-clarification.ts
T
José Almeida 32f098a6fc feat: show question icon only for pending input (#782)
* fix: show question icon only for pending input

* fix: address pending input review feedback

* fix: reduce pending input sidebar complexity

* fix: address clarification review comments

* test: cover pending clarification hook
2026-05-02 23:01:21 +01:00

28 lines
1.0 KiB
TypeScript

import type { ClarificationRequestMetadata, Message } from "@/lib/types/http";
export function isPendingClarificationMessage(message: Message): boolean {
if (message.type !== "clarification_request") return false;
const metadata = message.metadata as ClarificationRequestMetadata | undefined;
return !metadata?.status || metadata.status === "pending";
}
export function findPendingClarification(messages?: readonly Message[] | null): Message | null {
if (!messages) return null;
for (let i = messages.length - 1; i >= 0; i--) {
if (isPendingClarificationMessage(messages[i])) return messages[i];
}
return null;
}
export function hasPendingClarification(messages?: readonly Message[] | null): boolean {
return findPendingClarification(messages) !== null;
}
export function hasPendingClarificationForSession(
messagesBySession: Record<string, readonly Message[] | undefined>,
sessionId?: string | null,
): boolean {
if (!sessionId) return false;
return hasPendingClarification(messagesBySession[sessionId]);
}