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 }); 29 } else { 30 if (showToast) { 31 Toast.success('当前是最新版本~'); 32 } 33 } 34 }); 35}; 36 37export default function (callOnMount = true) { 38 useEffect(() => { 39 if (callOnMount) { 40 checkUpdateAndShowResult(false, true); 41 } 42 }, []); 43 44 return checkUpdateAndShowResult; 45} 46