diff --git a/src/lib/updateChecker.svelte.ts b/src/lib/updateChecker.svelte.ts index b59d21ba1..fe60fc3e7 100644 --- a/src/lib/updateChecker.svelte.ts +++ b/src/lib/updateChecker.svelte.ts @@ -41,6 +41,24 @@ class UpdateChecker { } }); + // True only when a version check has succeeded and found no newer + // version. Stays false when the checker is disabled or the check failed, + // so the UI doesn't claim "up to date" without evidence. + public upToDate = $derived.by(() => { + if ( + this.isEnabled && + this.latestVersionInfo && + this.sanitizedCurrentVersion + ) { + return !semver.gt( + this.latestVersionInfo.version, + this.sanitizedCurrentVersion, + ); + } else { + return false; + } + }); + // A state that holds the `LatestVersionInfo` if this feature has // been enabled and if there is a newer version available. public newVersion = $derived.by(() => { diff --git a/src/modals/Settings.svelte b/src/modals/Settings.svelte index 00c927366..f1a7b69d9 100644 --- a/src/modals/Settings.svelte +++ b/src/modals/Settings.svelte @@ -140,7 +140,7 @@ · Update to {updateChecker.newVersion} - {:else} + {:else if updateChecker.upToDate} · Up to date {/if} {/if}