export type TranscriptionStatus = | "PENDING" | "QUEUED" | "PROCESSING" | "SUCCEEDED" | "FAILED"; export type Transcript = { transcript: string[] }; export type TranscriptionState = { status: TranscriptionStatus; error: string | null; transcript: string[] | null; }; export const statusLabels: Record = { PENDING: "待转写", QUEUED: "排队中", PROCESSING: "处理中", SUCCEEDED: "已完成", FAILED: "失败", }; export function isActive(status: string) { return status === "QUEUED" || status === "PROCESSING"; } export function transcriptionState( transcript: Transcript | null, task: { status: string; lastError: string | null } | null, ): TranscriptionState { return { status: (task?.status ?? (transcript ? "SUCCEEDED" : "PENDING")) as TranscriptionStatus, error: task?.lastError ?? null, transcript: transcript?.transcript ?? null, }; }