1import { showDialog } from "@/components/dialogs/useDialog"; 2import PersistStatus from "@/core/persistStatus.ts"; 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