import { Loader2Icon, RotateCwIcon } from "lucide-react";
import type { UseTurnQueueResult } from "../hooks/use-turn-queue";
import { useErrorMessage } from "../lib/error-message";
import { useOpenGeniText } from "../messages/runtime";
type QueueStateProps = {
queue: UseTurnQueueResult;
};
export function EmptyQueueStateSurface({ queue }: QueueStateProps) {
const hasError = Boolean(queue.error || queue.mutationError);
return (
{queue.stoppingPreviousAttempt ? (
) : null}
{hasError ? : null}
);
}
export function QueueStoppingStatus({
queue,
dividerAfter = false,
}: QueueStateProps & { dividerAfter?: boolean }) {
const t = useOpenGeniText();
return (
{queue.effectiveControl?.state === "paused"
? t("queueSurfaceState.stoppingCurrentAttempt")
: t("queueSurfaceState.stoppingPreviousAttempt")}
{" "}
{queue.effectiveControl?.state === "paused"
? t("queueSurfaceState.queuedWorkStaysSavedUntil")
: t("queueSurfaceState.queuedWorkIsSavedAnd")}
);
}
export function QueueErrorAlert({
queue,
dividerBefore = false,
}: QueueStateProps & { dividerBefore?: boolean }) {
const t = useOpenGeniText();
const formatError = useErrorMessage();
return (
{formatError(queue.mutationError ?? queue.error)}
);
}