diff --git a/src/platform/updates/common/useFrontendVersionMismatchWarning.ts b/src/platform/updates/common/useFrontendVersionMismatchWarning.ts index adb1bd702..4505936d1 100644 --- a/src/platform/updates/common/useFrontendVersionMismatchWarning.ts +++ b/src/platform/updates/common/useFrontendVersionMismatchWarning.ts @@ -1,5 +1,5 @@ import { whenever } from '@vueuse/core' -import { computed, onMounted } from 'vue' +import { computed, nextTick, onMounted } from 'vue' import { useI18n } from 'vue-i18n' import { useToastStore } from './toastStore' @@ -65,9 +65,12 @@ export function useFrontendVersionMismatchWarning( versionCompatibilityStore.dismissWarning() } - onMounted(() => { + onMounted(async () => { // Only set up the watcher if immediate is true if (immediate) { + // Wait for next tick to ensure reactive updates from settings load have propagated + await nextTick() + whenever( () => versionCompatibilityStore.shouldShowWarning, () => { diff --git a/src/platform/updates/common/versionCompatibilityStore.ts b/src/platform/updates/common/versionCompatibilityStore.ts index f59cbc279..a1ca0f3d0 100644 --- a/src/platform/updates/common/versionCompatibilityStore.ts +++ b/src/platform/updates/common/versionCompatibilityStore.ts @@ -88,11 +88,16 @@ export const useVersionCompatibilityStore = defineStore( return Date.now() < dismissedUntil }) + const warningsDisabled = computed(() => + settingStore.get('Comfy.VersionCompatibility.DisableWarnings') + ) + const shouldShowWarning = computed(() => { - const warningsDisabled = settingStore.get( - 'Comfy.VersionCompatibility.DisableWarnings' + return ( + hasVersionMismatch.value && + !isDismissed.value && + !warningsDisabled.value ) - return hasVersionMismatch.value && !isDismissed.value && !warningsDisabled }) const warningMessage = computed(() => {