fix(projects): fix update notifications. fixed #691, fixed #692

This commit is contained in:
Soybean 2025-01-19 22:01:02 +08:00
parent c9433e1710
commit ac86247876

View File

@ -14,18 +14,14 @@ export function setupAppErrorHandle(app: App) {
const UPDATE_CHECK_INTERVAL = 3 * 60 * 1000; const UPDATE_CHECK_INTERVAL = 3 * 60 * 1000;
export function setupAppVersionNotification() { export function setupAppVersionNotification() {
const canAutoUpdateApp = import.meta.env.VITE_AUTOMATICALLY_DETECT_UPDATE === 'Y'; const canAutoUpdateApp = import.meta.env.VITE_AUTOMATICALLY_DETECT_UPDATE === 'Y' && import.meta.env.PROD;
if (!canAutoUpdateApp) return; if (!canAutoUpdateApp) return;
let isShow = false; let isShow = false;
let updateInterval: ReturnType<typeof setInterval> | undefined; let updateInterval: ReturnType<typeof setInterval> | undefined;
// Check if updates should be checked
const shouldCheckForUpdates = [!isShow, document.visibilityState === 'visible', !import.meta.env.DEV].every(Boolean);
const checkForUpdates = async () => { const checkForUpdates = async () => {
if (!shouldCheckForUpdates) return; if (isShow) return;
const buildTime = await getHtmlBuildTime(); const buildTime = await getHtmlBuildTime();
@ -47,6 +43,7 @@ export function setupAppVersionNotification() {
{ {
onClick() { onClick() {
n?.destroy(); n?.destroy();
isShow = false;
} }
}, },
() => $t('system.updateCancel') () => $t('system.updateCancel')
@ -77,7 +74,7 @@ export function setupAppVersionNotification() {
}; };
// If updates should be checked, set up the visibility change listener and start the update interval // If updates should be checked, set up the visibility change listener and start the update interval
if (shouldCheckForUpdates) { if (!isShow && document.visibilityState === 'visible') {
// Check for updates when the document is visible // Check for updates when the document is visible
document.addEventListener('visibilitychange', () => { document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'visible') { if (document.visibilityState === 'visible') {