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