import { getErrorDetails } from "../utils/errorCodeHelpers"; import { PopoverContent } from "@/components/ui/popover"; import { cn } from "@/lib/utils"; import { InfoCard, InfoCardTitle, InfoCardDescription, InfoCardList, InfoCardListItem, } from "./InfoCard"; interface ErrorPopoverContentProps { machineError?: number; isPairingError: boolean; errorMessage?: string | null; pyodideError?: string | null; } export function ErrorPopoverContent({ machineError, isPairingError, errorMessage, pyodideError, }: ErrorPopoverContentProps) { const errorDetails = getErrorDetails(machineError); const isPairingErr = isPairingError; const errorMsg = pyodideError || errorMessage || ""; const isInfo = isPairingErr || errorDetails?.isInformational; const variant = isInfo ? "info" : "error"; const title = errorDetails?.title || (isPairingErr ? "Pairing Required" : "Error"); return ( {title} {errorDetails?.description || errorMsg} {errorDetails?.solutions && errorDetails.solutions.length > 0 && ( <>

{isInfo ? "Steps:" : "How to Fix:"}

{errorDetails.solutions.map((solution, index) => ( {solution} ))} )} {machineError !== undefined && !errorDetails?.isInformational && (

Error Code: 0x {machineError.toString(16).toUpperCase().padStart(2, "0")}

)}
); }