xref: /MusicFree/src/hooks/useCheckUpdate.ts (revision 6f73e807144af9b496f38d87ede85146d6bf98f4)
1*6f73e807S猫头猫import {showDialog} from '@/components/dialogs/useDialog';
2*6f73e807S猫头猫import PersistStatus from '@/core/persistStatus';
3*6f73e807S猫头猫import checkUpdate from '@/utils/checkUpdate';
4*6f73e807S猫头猫import Toast from '@/utils/toast';
5*6f73e807S猫头猫import {compare} from 'compare-versions';
6*6f73e807S猫头猫import {useEffect} from 'react';
7*6f73e807S猫头猫
8*6f73e807S猫头猫export const checkUpdateAndShowResult = (
9*6f73e807S猫头猫    showToast = false,
10*6f73e807S猫头猫    checkSkip = false,
11*6f73e807S猫头猫) => {
12*6f73e807S猫头猫    checkUpdate().then(updateInfo => {
13*6f73e807S猫头猫        if (updateInfo?.needUpdate) {
14*6f73e807S猫头猫            const {data} = updateInfo;
15*6f73e807S猫头猫            const skipVersion = PersistStatus.get('app.skipVersion');
16*6f73e807S猫头猫            console.log(skipVersion, data);
17*6f73e807S猫头猫            if (
18*6f73e807S猫头猫                checkSkip &&
19*6f73e807S猫头猫                skipVersion &&
20*6f73e807S猫头猫                compare(skipVersion, data.version, '>=')
21*6f73e807S猫头猫            ) {
22*6f73e807S猫头猫                return;
23*6f73e807S猫头猫            }
24*6f73e807S猫头猫            showDialog('DownloadDialog', {
25*6f73e807S猫头猫                version: data.version,
26*6f73e807S猫头猫                content: data.changeLog,
27*6f73e807S猫头猫                fromUrl: data.download[0],
28*6f73e807S猫头猫            });
29*6f73e807S猫头猫        } else {
30*6f73e807S猫头猫            if (showToast) {
31*6f73e807S猫头猫                Toast.success('当前是最新版本~');
32*6f73e807S猫头猫            }
33*6f73e807S猫头猫        }
34*6f73e807S猫头猫    });
35*6f73e807S猫头猫};
36*6f73e807S猫头猫
37*6f73e807S猫头猫export default function (callOnMount = true) {
38*6f73e807S猫头猫    useEffect(() => {
39*6f73e807S猫头猫        if (callOnMount) {
40*6f73e807S猫头猫            checkUpdateAndShowResult(false, true);
41*6f73e807S猫头猫        }
42*6f73e807S猫头猫    }, []);
43*6f73e807S猫头猫
44*6f73e807S猫头猫    return checkUpdateAndShowResult;
45*6f73e807S猫头猫}
46