xref: /MusicFree/src/hooks/useCheckUpdate.ts (revision 819a9075ec97c73412fbf94430d3065e57d52b4e)
163c74e8eSmaotoumaoimport { showDialog } from "@/components/dialogs/useDialog";
2*819a9075Smaotoumaoimport PersistStatus from "@/core/persistStatus.ts";
363c74e8eSmaotoumaoimport checkUpdate from "@/utils/checkUpdate";
463c74e8eSmaotoumaoimport Toast from "@/utils/toast";
563c74e8eSmaotoumaoimport { compare } from "compare-versions";
663c74e8eSmaotoumaoimport { useEffect } from "react";
76f73e807S猫头猫
86f73e807S猫头猫export const checkUpdateAndShowResult = (
96f73e807S猫头猫    showToast = false,
106f73e807S猫头猫    checkSkip = false,
116f73e807S猫头猫) => {
126f73e807S猫头猫    checkUpdate().then(updateInfo => {
136f73e807S猫头猫        if (updateInfo?.needUpdate) {
146f73e807S猫头猫            const {data} = updateInfo;
15*819a9075Smaotoumao            const skipVersion = PersistStatus.get('app.skipVersion');
166f73e807S猫头猫            console.log(skipVersion, data);
176f73e807S猫头猫            if (
186f73e807S猫头猫                checkSkip &&
196f73e807S猫头猫                skipVersion &&
206f73e807S猫头猫                compare(skipVersion, data.version, '>=')
216f73e807S猫头猫            ) {
226f73e807S猫头猫                return;
236f73e807S猫头猫            }
246f73e807S猫头猫            showDialog('DownloadDialog', {
256f73e807S猫头猫                version: data.version,
266f73e807S猫头猫                content: data.changeLog,
276f73e807S猫头猫                fromUrl: data.download[0],
28d8bc08a8S猫头猫                backUrl: data.download[1],
296f73e807S猫头猫            });
306f73e807S猫头猫        } else {
316f73e807S猫头猫            if (showToast) {
326f73e807S猫头猫                Toast.success('当前是最新版本~');
336f73e807S猫头猫            }
346f73e807S猫头猫        }
356f73e807S猫头猫    });
366f73e807S猫头猫};
376f73e807S猫头猫
386f73e807S猫头猫export default function (callOnMount = true) {
396f73e807S猫头猫    useEffect(() => {
406f73e807S猫头猫        if (callOnMount) {
416f73e807S猫头猫            checkUpdateAndShowResult(false, true);
426f73e807S猫头猫        }
436f73e807S猫头猫    }, []);
446f73e807S猫头猫
456f73e807S猫头猫    return checkUpdateAndShowResult;
466f73e807S猫头猫}
47