import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertTriangle, ChevronDown, ChevronUp, RefreshCw, Download, Mail, Bug } from "lucide-react"; import { check } from "@tauri-apps/plugin-updater"; interface ErrorPageProps { error?: string; } export default function ErrorPage({ error }: ErrorPageProps) { const { t } = useTranslation(); const [showDetails, setShowDetails] = useState(false); const [updateStatus, setUpdateStatus] = useState<"idle" | "checking" | "available" | "upToDate" | "error">("idle"); const [updateVersion, setUpdateVersion] = useState(null); const [updateError, setUpdateError] = useState(null); const handleCheckUpdate = async () => { setUpdateStatus("checking"); setUpdateError(null); try { const update = await check(); if (update) { setUpdateStatus("available"); setUpdateVersion(update.version); } else { setUpdateStatus("upToDate"); } } catch (e) { setUpdateStatus("error"); setUpdateError(e instanceof Error ? e.message : String(e)); } }; const handleRefresh = () => { window.location.reload(); }; return (

{t("error.title")}

{error && (
{showDetails && (
                {error}
              
)}
)}
{updateStatus === "available" && updateVersion && (

{t("error.updateAvailable", { version: updateVersion })}

)} {updateStatus === "upToDate" && (

{t("error.upToDate")}

)} {updateStatus === "error" && updateError && (

{updateError}

)}
); }