fix: update fallback (#5115)

* fix: update fallback

* test: introduce Vitest and add semver helper tests

* chore: merge vitest config into vite
This commit is contained in:
Sline
2025-10-18 15:51:34 +08:00
committed by GitHub
parent 3d09cf0666
commit c465000178
10 changed files with 661 additions and 24 deletions

View File

@@ -14,7 +14,6 @@ import {
IconButton,
Tooltip,
} from "@mui/material";
import { check as checkUpdate } from "@tauri-apps/plugin-updater";
import { useLockFn } from "ahooks";
import { useCallback, useEffect, useMemo, useReducer } from "react";
import { useTranslation } from "react-i18next";
@@ -26,6 +25,7 @@ import { useVerge } from "@/hooks/use-verge";
import { useServiceInstaller } from "@/hooks/useServiceInstaller";
import { getSystemInfo } from "@/services/cmds";
import { showNotice } from "@/services/noticeService";
import { checkUpdateSafe as checkUpdate } from "@/services/update";
import { version as appVersion } from "@root/package.json";
import { EnhancedCard } from "./enhanced-card";

View File

@@ -1,9 +1,9 @@
import { Button } from "@mui/material";
import { check } from "@tauri-apps/plugin-updater";
import { useRef } from "react";
import useSWR from "swr";
import { useVerge } from "@/hooks/use-verge";
import { checkUpdateSafe } from "@/services/update";
import { DialogRef } from "../base";
import { UpdateViewer } from "../setting/mods/update-viewer";
@@ -21,7 +21,7 @@ export const UpdateButton = (props: Props) => {
const { data: updateInfo } = useSWR(
auto_check_update || auto_check_update === null ? "checkUpdate" : null,
check,
checkUpdateSafe,
{
errorRetryCount: 2,
revalidateIfStale: false,

View File

@@ -2,7 +2,6 @@ import { Box, Button, LinearProgress } from "@mui/material";
import { Event, UnlistenFn } from "@tauri-apps/api/event";
import { relaunch } from "@tauri-apps/plugin-process";
import { open as openUrl } from "@tauri-apps/plugin-shell";
import { check as checkUpdate } from "@tauri-apps/plugin-updater";
import { useLockFn } from "ahooks";
import type { Ref } from "react";
import { useEffect, useImperativeHandle, useMemo, useState } from "react";
@@ -15,6 +14,7 @@ import { useListen } from "@/hooks/use-listen";
import { portableFlag } from "@/pages/_layout";
import { showNotice } from "@/services/noticeService";
import { useSetUpdateState, useUpdateState } from "@/services/states";
import { checkUpdateSafe as checkUpdate } from "@/services/update";
export function UpdateViewer({ ref }: { ref?: Ref<DialogRef> }) {
const { t } = useTranslation();

View File

@@ -1,6 +1,5 @@
import { ContentCopyRounded } from "@mui/icons-material";
import { Typography } from "@mui/material";
import { check as checkUpdate } from "@tauri-apps/plugin-updater";
import { useCallback, useRef } from "react";
import { useTranslation } from "react-i18next";
@@ -15,6 +14,7 @@ import {
openLogsDir,
} from "@/services/cmds";
import { showNotice } from "@/services/noticeService";
import { checkUpdateSafe as checkUpdate } from "@/services/update";
import { version } from "@root/package.json";
import { BackupViewer } from "./mods/backup-viewer";