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