diff --git a/CHANGELOG.md b/CHANGELOG.md index c052e723..ae61822a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Added - (**Theme**) Add an option to save the dynamic color theme on the manga page as a custom theme - (**WebUI Update**) Add an option to (partially) disable showing information when the webUI got updated +- (**Server Update**) Add an option to disable showing information when the server got updated ### Changed - (**General**) Preserve refresh token (UI Login) over sessions diff --git a/src/features/app-updates/AppUpdateChecker.types.ts b/src/features/app-updates/AppUpdateChecker.types.ts index f2508d57..13450e6d 100644 --- a/src/features/app-updates/AppUpdateChecker.types.ts +++ b/src/features/app-updates/AppUpdateChecker.types.ts @@ -10,4 +10,5 @@ export type MetadataUpdateSettings = { webUIInformAvailableUpdate: boolean; webUIInformVersionUpdated: boolean; serverInformAvailableUpdate: boolean; + serverInformVersionUpdated: boolean; }; diff --git a/src/features/app-updates/components/ServerUpdateChecker.tsx b/src/features/app-updates/components/ServerUpdateChecker.tsx index 159285e4..75ff4cc8 100644 --- a/src/features/app-updates/components/ServerUpdateChecker.tsx +++ b/src/features/app-updates/components/ServerUpdateChecker.tsx @@ -30,7 +30,8 @@ export const ServerUpdateChecker = () => { const [open, setOpen] = useState(false); const { - settings: { serverInformAvailableUpdate }, + settings: { serverInformAvailableUpdate, serverInformVersionUpdated }, + loading: areMetadataServerSettingsLoading, } = useMetadataServerSettings(); const { @@ -70,8 +71,12 @@ export const ServerUpdateChecker = () => { setServerVersion(version); } - if (!isSameAsCurrent && !open) { - setOpen(true); + if (!areMetadataServerSettingsLoading && !isSameAsCurrent && !open) { + if (serverInformVersionUpdated) { + setOpen(true); + } else { + setServerVersion(version); + } } if (isCheckingForServerUpdate) { diff --git a/src/features/metadata/Metadata.constants.ts b/src/features/metadata/Metadata.constants.ts index 0914b2c1..2f38e771 100644 --- a/src/features/metadata/Metadata.constants.ts +++ b/src/features/metadata/Metadata.constants.ts @@ -141,6 +141,9 @@ export const APP_METADATA: Record< serverInformAvailableUpdate: { convert: convertToBoolean, }, + serverInformVersionUpdated: { + convert: convertToBoolean, + }, readerWidth: { convert: convertToObject, }, @@ -454,6 +457,7 @@ export const GLOBAL_METADATA_KEYS: AppMetadataKeys[] = [ 'webUIInformAvailableUpdate', 'webUIInformVersionUpdated', 'serverInformAvailableUpdate', + 'serverInformVersionUpdated', // sources 'savedSearches', diff --git a/src/features/settings/Settings.constants.ts b/src/features/settings/Settings.constants.ts index a774a308..514cf9ed 100644 --- a/src/features/settings/Settings.constants.ts +++ b/src/features/settings/Settings.constants.ts @@ -84,6 +84,7 @@ export const SERVER_SETTINGS_METADATA_DEFAULT: MetadataServerSettings = { webUIInformAvailableUpdate: true, webUIInformVersionUpdated: true, serverInformAvailableUpdate: true, + serverInformVersionUpdated: true, // themes locale: getPreferredISOLanguageCodes()[0], diff --git a/src/features/settings/screens/ServerSettings.tsx b/src/features/settings/screens/ServerSettings.tsx index 3e478bf1..81e4bfea 100644 --- a/src/features/settings/screens/ServerSettings.tsx +++ b/src/features/settings/screens/ServerSettings.tsx @@ -59,12 +59,12 @@ export const ServerSettings = () => { useAppTitle(t`Server`); const { - settings: { serverInformAvailableUpdate }, + settings: { serverInformAvailableUpdate, serverInformVersionUpdated }, loading: areMetadataServerSettingsLoading, request: { error: metadataServerSettingsError, refetch: refetchServerMetadataSettings }, } = useMetadataServerSettings(); const updateMetadataServerSettings = createUpdateMetadataServerSettings< - keyof Pick + keyof Pick >((e) => makeToast(t`Failed to save changes`, 'error', getErrorMessage(e))); const { @@ -103,6 +103,17 @@ export const ServerSettings = () => { } > + + + updateMetadataServerSettings('serverInformVersionUpdated', e.target.checked)} + /> + { ), - [serverInformAvailableUpdate], + [serverInformVersionUpdated, serverInformAvailableUpdate], ); const loading = areMetadataServerSettingsLoading || areServerSettingsLoading || koSyncStatus.loading; diff --git a/src/i18n/locales/en.po b/src/i18n/locales/en.po index a12cbd59..4e436807 100644 --- a/src/i18n/locales/en.po +++ b/src/i18n/locales/en.po @@ -1815,6 +1815,10 @@ msgstr "Inform about missing chapters on chapter transition" msgid "Inform about updated version" msgstr "Inform about updated version" +#: src/features/settings/screens/ServerSettings.tsx +msgid "Inform about version update" +msgstr "Inform about version update" + #: src/base/components/feedback/SnackbarWithDescription.tsx #: src/base/components/feedback/SnackbarWithDescription.tsx msgid "Information" @@ -3023,6 +3027,10 @@ msgstr "Shows a dialog in case a new version is available" msgid "Shows a dialog in case the version got updated. This dialog will be shown in case an app refresh is required, regardless of this setting." msgstr "Shows a dialog in case the version got updated. This dialog will be shown in case an app refresh is required, regardless of this setting." +#: src/features/settings/screens/ServerSettings.tsx +msgid "Shows a dialog in case the version of the server has changed" +msgstr "Shows a dialog in case the version of the server has changed" + #: src/features/settings/Settings.constants.ts msgid "Simple Login" msgstr "Simple Login"