Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import { Alert } from "@heroui/react" import { VSCodeButton } from "@vscode/webview-ui-toolkit/react" import { XIcon } from "lucide-react" import { useMemo, useState } from "react" interface CheckpointErrorProps { checkpointManagerErrorMessage?: string handleCheckpointSettingsClick: () => void } export const CheckpointError: React.FC<CheckpointErrorProps> = ({ checkpointManagerErrorMessage, handleCheckpointSettingsClick, }) => { const [dismissed, setDismissed] = useState(false) const messages = useMemo(() => { const message = checkpointManagerErrorMessage?.replace(/disabling checkpoints\.$/, "") const showDisableButton = checkpointManagerErrorMessage?.endsWith("disabling checkpoints.") || checkpointManagerErrorMessage?.includes("multi-root workspaces") const showGitInstructions = checkpointManagerErrorMessage?.includes("Git must be installed to use checkpoints.") return { message, showDisableButton, showGitInstructions } }, [checkpointManagerErrorMessage]) if (!checkpointManagerErrorMessage || dismissed) { return null } return ( <div className="flex items-center justify-center w-full"> <Alert className="rounded-sm border-0 bg-[var(--vscode-inputValidation-errorBackground)] text-[var(--vscode-inputValidation-errorForeground)] pl-1 pr-1.5 py-1" color="warning" description={ <div className="flex gap-2"> {messages.showDisableButton && ( <button className="underline cursor-pointer bg-transparent border-0 p-0 text-inherit" onClick={handleCheckpointSettingsClick}> Disable Checkpoints </button> )} {messages.showGitInstructions && ( <a className="text-link underline" href="https://github.com/AI-Hydro/AI-Hydro/issues"> See instructions </a> )} </div> } endContent={ <VSCodeButton appearance="icon" aria-label="Dismiss" className="inline-flex opacity-100 hover:bg-transparent hover:opacity-60 p-0" onClick={() => setDismissed(true)} title="Dismiss Checkpoint Error"> <XIcon size={12} /> </VSCodeButton> } hideIconWrapper={true} isVisible={!dismissed} title={messages.message} variant="faded" /> </div> ) } |