From dcb09580d824c5cbfe0a7b4c2dc43066694f15ba Mon Sep 17 00:00:00 2001 From: 4gray Date: Sun, 28 Jun 2026 22:35:44 +0200 Subject: [PATCH] fix(settings): show current release notes --- .../settings-about-section.component.spec.ts | 18 +++++++++++++++ .../settings-about-section.component.ts | 9 ++------ .../app/settings/settings.component.spec.ts | 23 +++++++++++++++++++ .../src/app/settings/settings.component.ts | 3 ++- apps/web/src/assets/i18n/ar.json | 2 +- apps/web/src/assets/i18n/ary.json | 2 +- apps/web/src/assets/i18n/by.json | 2 +- apps/web/src/assets/i18n/de.json | 2 +- apps/web/src/assets/i18n/el.json | 2 +- apps/web/src/assets/i18n/en.json | 2 +- apps/web/src/assets/i18n/es.json | 2 +- apps/web/src/assets/i18n/fr.json | 2 +- apps/web/src/assets/i18n/it.json | 2 +- apps/web/src/assets/i18n/ja.json | 2 +- apps/web/src/assets/i18n/ko.json | 2 +- apps/web/src/assets/i18n/nl.json | 2 +- apps/web/src/assets/i18n/pl.json | 2 +- apps/web/src/assets/i18n/pt.json | 2 +- apps/web/src/assets/i18n/ru.json | 2 +- apps/web/src/assets/i18n/tr.json | 2 +- apps/web/src/assets/i18n/zh.json | 2 +- apps/web/src/assets/i18n/zhtw.json | 2 +- 22 files changed, 63 insertions(+), 26 deletions(-) diff --git a/apps/web/src/app/settings/settings-about-section.component.spec.ts b/apps/web/src/app/settings/settings-about-section.component.spec.ts index b74b3d016..2ca97c487 100644 --- a/apps/web/src/app/settings/settings-about-section.component.spec.ts +++ b/apps/web/src/app/settings/settings-about-section.component.spec.ts @@ -81,6 +81,24 @@ describe('SettingsAboutSectionComponent app updates', () => { expect(install).toHaveBeenCalledTimes(1); }); + it('shows release notes for the current version when no update is available', () => { + const openNotes = jest.fn(); + fixture.componentInstance.openAppUpdateReleaseNotes.subscribe(openNotes); + configureComponent(fixture, { + currentVersion: '0.22.0', + latestVersion: '0.22.0', + manualDownloadUrl: + 'https://github.com/4gray/iptvnator/releases/latest', + status: ELECTRON_BRIDGE_APP_UPDATE_STATUSES.NotAvailable, + supportedSelfUpdate: true, + }); + + getButton(fixture, 'app-update-release-notes')?.click(); + + expect(getButton(fixture, 'app-update-release-notes')).toBeTruthy(); + expect(openNotes).toHaveBeenCalledTimes(1); + }); + it('emits a manual release request for unsupported Linux packages', () => { const openManual = jest.fn(); fixture.componentInstance.openManualAppUpdate.subscribe(openManual); diff --git a/apps/web/src/app/settings/settings-about-section.component.ts b/apps/web/src/app/settings/settings-about-section.component.ts index 0c67a5783..ed510ab46 100644 --- a/apps/web/src/app/settings/settings-about-section.component.ts +++ b/apps/web/src/app/settings/settings-about-section.component.ts @@ -64,13 +64,8 @@ export class SettingsAboutSectionComponent { const status = this.appUpdateStatus(); return Boolean( - status?.latestVersion && - status.status !== ELECTRON_BRIDGE_APP_UPDATE_STATUSES.Idle && - status.status !== - ELECTRON_BRIDGE_APP_UPDATE_STATUSES.Checking && - status.status !== - ELECTRON_BRIDGE_APP_UPDATE_STATUSES.NotAvailable && - status.status !== ELECTRON_BRIDGE_APP_UPDATE_STATUSES.Error + status?.currentVersion && + status.status !== ELECTRON_BRIDGE_APP_UPDATE_STATUSES.Checking ); }); diff --git a/apps/web/src/app/settings/settings.component.spec.ts b/apps/web/src/app/settings/settings.component.spec.ts index 04745326e..f49690755 100644 --- a/apps/web/src/app/settings/settings.component.spec.ts +++ b/apps/web/src/app/settings/settings.component.spec.ts @@ -500,6 +500,29 @@ describe('SettingsComponent', () => { ); }); + it('opens release notes dialog for the current version when no update is available', () => { + const openSpy = jest + .spyOn(privateApi(component).matDialog, 'open') + .mockReturnValue(createDialogRef(false)); + component.appUpdateStatus.set({ + ...DEFAULT_APP_UPDATE_STATUS, + latestVersion: undefined, + release: undefined, + status: ELECTRON_BRIDGE_APP_UPDATE_STATUSES.NotAvailable, + }); + + component.openAppUpdateReleaseNotes(); + + expect(openSpy).toHaveBeenCalledWith( + AppUpdateReleaseNotesDialogComponent, + expect.objectContaining({ + data: { + initialVersion: DEFAULT_APP_UPDATE_STATUS.currentVersion, + }, + }) + ); + }); + it('should render a compact page header outside dialog mode', () => { const nativeElement = fixture.nativeElement as HTMLElement; diff --git a/apps/web/src/app/settings/settings.component.ts b/apps/web/src/app/settings/settings.component.ts index 462f4ebee..671715540 100644 --- a/apps/web/src/app/settings/settings.component.ts +++ b/apps/web/src/app/settings/settings.component.ts @@ -403,7 +403,8 @@ export class SettingsComponent implements OnInit, OnDestroy { data: { initialVersion: this.appUpdateStatus()?.latestVersion ?? - this.appUpdateStatus()?.release?.version, + this.appUpdateStatus()?.release?.version ?? + this.appUpdateStatus()?.currentVersion, }, maxWidth: 'calc(100vw - 32px)', restoreFocus: true, diff --git a/apps/web/src/assets/i18n/ar.json b/apps/web/src/assets/i18n/ar.json index f520e4aa6..aa00ca8ed 100644 --- a/apps/web/src/assets/i18n/ar.json +++ b/apps/web/src/assets/i18n/ar.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "داكن", diff --git a/apps/web/src/assets/i18n/ary.json b/apps/web/src/assets/i18n/ary.json index 8374f9a06..794c07aa4 100644 --- a/apps/web/src/assets/i18n/ary.json +++ b/apps/web/src/assets/i18n/ary.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "داكن", diff --git a/apps/web/src/assets/i18n/by.json b/apps/web/src/assets/i18n/by.json index 0b2b254b2..468cb6cff 100644 --- a/apps/web/src/assets/i18n/by.json +++ b/apps/web/src/assets/i18n/by.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Цёмная", diff --git a/apps/web/src/assets/i18n/de.json b/apps/web/src/assets/i18n/de.json index be1713fc7..c670fb1c0 100644 --- a/apps/web/src/assets/i18n/de.json +++ b/apps/web/src/assets/i18n/de.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Dunkel", diff --git a/apps/web/src/assets/i18n/el.json b/apps/web/src/assets/i18n/el.json index 650f60a44..763440cc5 100644 --- a/apps/web/src/assets/i18n/el.json +++ b/apps/web/src/assets/i18n/el.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Σκούρο", diff --git a/apps/web/src/assets/i18n/en.json b/apps/web/src/assets/i18n/en.json index b7b8a30a0..b053f457b 100644 --- a/apps/web/src/assets/i18n/en.json +++ b/apps/web/src/assets/i18n/en.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Dark", diff --git a/apps/web/src/assets/i18n/es.json b/apps/web/src/assets/i18n/es.json index 9c32a4649..cf403ce52 100644 --- a/apps/web/src/assets/i18n/es.json +++ b/apps/web/src/assets/i18n/es.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Oscuro", diff --git a/apps/web/src/assets/i18n/fr.json b/apps/web/src/assets/i18n/fr.json index 56ab858d5..ec96770ab 100644 --- a/apps/web/src/assets/i18n/fr.json +++ b/apps/web/src/assets/i18n/fr.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Sombre", diff --git a/apps/web/src/assets/i18n/it.json b/apps/web/src/assets/i18n/it.json index f1bac6090..1d7e174be 100644 --- a/apps/web/src/assets/i18n/it.json +++ b/apps/web/src/assets/i18n/it.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Scuro", diff --git a/apps/web/src/assets/i18n/ja.json b/apps/web/src/assets/i18n/ja.json index 1ce473fd4..8b23c50a0 100644 --- a/apps/web/src/assets/i18n/ja.json +++ b/apps/web/src/assets/i18n/ja.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "ダーク", diff --git a/apps/web/src/assets/i18n/ko.json b/apps/web/src/assets/i18n/ko.json index 67cbd4c74..288e55069 100644 --- a/apps/web/src/assets/i18n/ko.json +++ b/apps/web/src/assets/i18n/ko.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "어둡게", diff --git a/apps/web/src/assets/i18n/nl.json b/apps/web/src/assets/i18n/nl.json index a488212d9..237f1f6fb 100644 --- a/apps/web/src/assets/i18n/nl.json +++ b/apps/web/src/assets/i18n/nl.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Donker", diff --git a/apps/web/src/assets/i18n/pl.json b/apps/web/src/assets/i18n/pl.json index 28b589596..46bfb5173 100644 --- a/apps/web/src/assets/i18n/pl.json +++ b/apps/web/src/assets/i18n/pl.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Ciemny", diff --git a/apps/web/src/assets/i18n/pt.json b/apps/web/src/assets/i18n/pt.json index 90f6c1218..a1eac7812 100644 --- a/apps/web/src/assets/i18n/pt.json +++ b/apps/web/src/assets/i18n/pt.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Escuro", diff --git a/apps/web/src/assets/i18n/ru.json b/apps/web/src/assets/i18n/ru.json index 46cbe798c..e7ca63e98 100644 --- a/apps/web/src/assets/i18n/ru.json +++ b/apps/web/src/assets/i18n/ru.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Обновить", "APP_UPDATE_INSTALL": "Перезагрузить приложение", "APP_UPDATE_OPEN_RELEASE": "Открыть GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "Что нового" }, "THEMES": { "DARK_THEME": "Тёмная", diff --git a/apps/web/src/assets/i18n/tr.json b/apps/web/src/assets/i18n/tr.json index c6d179e04..880b08936 100644 --- a/apps/web/src/assets/i18n/tr.json +++ b/apps/web/src/assets/i18n/tr.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "Koyu", diff --git a/apps/web/src/assets/i18n/zh.json b/apps/web/src/assets/i18n/zh.json index 4508bcb8b..d0392b51e 100644 --- a/apps/web/src/assets/i18n/zh.json +++ b/apps/web/src/assets/i18n/zh.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "深色", diff --git a/apps/web/src/assets/i18n/zhtw.json b/apps/web/src/assets/i18n/zhtw.json index 120f3a543..1a1bdd046 100644 --- a/apps/web/src/assets/i18n/zhtw.json +++ b/apps/web/src/assets/i18n/zhtw.json @@ -410,7 +410,7 @@ "APP_UPDATE_DOWNLOAD": "Update", "APP_UPDATE_INSTALL": "Restart application", "APP_UPDATE_OPEN_RELEASE": "Open GitHub release", - "APP_UPDATE_RELEASE_NOTES": "Release notes" + "APP_UPDATE_RELEASE_NOTES": "What's new" }, "THEMES": { "DARK_THEME": "深色",