import { useRef, useState } from "react"; import { Loader2, RotateCcw } from "lucide-react"; import { Button } from "@/components/ui/button"; import { useCurrentWorkspaceRetry } from "./WorkspaceBaseRefRecovery"; export function WorkspaceRetryControl() { const retry = useCurrentWorkspaceRetry(); return retry ? : null; } export function WorkspaceRetryButton({ onRetry, unavailableReason }: { onRetry: () => Promise; unavailableReason: string | null; }) { const inFlight = useRef(false); const [pending, setPending] = useState(false); const [requested, setRequested] = useState(false); const [error, setError] = useState(null); async function retry() { if (inFlight.current || requested || unavailableReason) return; inFlight.current = true; setPending(true); setError(null); try { await onRetry(); setRequested(true); } catch (cause) { setError(cause instanceof Error ? cause.message : "Couldn’t retry. Try again."); } finally { inFlight.current = false; setPending(false); } } return
{error ?

{error}

: null}
; }