import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { Info, RefreshCw, Download, CheckCircle, AlertCircle, RotateCcw, Loader2, ShieldCheck, BookOpen, ChevronRight, } from "lucide-react"; import { getVersion } from "@tauri-apps/api/app"; import { useUpdater } from "../hooks/useUpdater"; import { Link } from "react-router-dom"; import { APP_NAME } from "../shared/constants"; import { PageHelp } from "../components/shared/PageHelp"; import DataManagementCard from "../components/settings/DataManagementCard"; export default function SettingsPage() { const { t } = useTranslation(); const { state, checkForUpdate, downloadAndInstall, installAndRestart } = useUpdater(); const [version, setVersion] = useState(""); useEffect(() => { getVersion().then(setVersion); }, []); const progressPercent = state.contentLength && state.contentLength > 0 ? Math.round((state.progress / state.contentLength) * 100) : null; return (
{t("settings.version", { version })}
{t("settings.userGuide.description")}
{t("settings.updates.available", { version: state.version })}
{state.body && ({trimmed.slice(4)}
; if (trimmed.startsWith("## ")) return{trimmed.slice(3)}
; if (trimmed.startsWith("- ")) return{"\u2022 "}{trimmed.slice(2).replace(/\*\*(.+?)\*\*/g, "$1")}
; return{trimmed}
; })}{t("settings.updates.readyToInstall")}
{state.error}
{t("settings.dataSafeNotice")}