Skip to content

Commit e104b4b

Browse files
committed
fix(whats-new-dialog): ensure dialog displays only on version change
1 parent ca697fc commit e104b4b

1 file changed

Lines changed: 18 additions & 13 deletions

File tree

src/components/shared/WhatsNewDialog.tsx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -142,27 +142,32 @@ export function WhatsNewDialog() {
142142
const raw = localStorage.getItem(LAST_INSTALLED_UPDATE_KEY);
143143
const lastSeenVersion = localStorage.getItem(LAST_SEEN_WHATS_NEW_VERSION_KEY);
144144

145-
if (!raw) return;
145+
// Only show the dialog when the app version actually changed.
146+
// This covers both updater-driven installs and manual installer upgrades.
147+
const versionChanged = Boolean(lastSeenVersion && lastSeenVersion !== installedVersion);
148+
149+
if (!raw && !versionChanged) return;
146150

147151
let parsed: StoredInstalledUpdate | null = null;
148-
try {
149-
parsed = JSON.parse(raw) as StoredInstalledUpdate;
150-
} catch {
151-
localStorage.removeItem(LAST_INSTALLED_UPDATE_KEY);
152-
return;
152+
if (raw) {
153+
try {
154+
parsed = JSON.parse(raw) as StoredInstalledUpdate;
155+
} catch {
156+
localStorage.removeItem(LAST_INSTALLED_UPDATE_KEY);
157+
}
153158
}
154159

155-
if (!parsed?.version) {
156-
localStorage.removeItem(LAST_INSTALLED_UPDATE_KEY);
157-
return;
158-
}
160+
const updateVersion = parsed?.version || installedVersion;
159161

160-
if (parsed.version !== installedVersion) {
162+
if (!versionChanged && updateVersion !== installedVersion) {
161163
return;
162164
}
163165

164-
if (lastSeenVersion === installedVersion) {
165-
return;
166+
if (!parsed?.version || parsed.version !== installedVersion) {
167+
parsed = {
168+
version: installedVersion,
169+
previousVersion: lastSeenVersion || undefined,
170+
};
166171
}
167172

168173
setReleaseInfo(parsed);

0 commit comments

Comments
 (0)