diff --git a/CHANGELOG.md b/CHANGELOG.md index d88fe086..c052e723 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,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 ### 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 d9926a0e..f2508d57 100644 --- a/src/features/app-updates/AppUpdateChecker.types.ts +++ b/src/features/app-updates/AppUpdateChecker.types.ts @@ -8,5 +8,6 @@ export type MetadataUpdateSettings = { webUIInformAvailableUpdate: boolean; + webUIInformVersionUpdated: boolean; serverInformAvailableUpdate: boolean; }; diff --git a/src/features/app-updates/components/WebUIUpdateChecker.tsx b/src/features/app-updates/components/WebUIUpdateChecker.tsx index 2c9c32fa..b057720c 100644 --- a/src/features/app-updates/components/WebUIUpdateChecker.tsx +++ b/src/features/app-updates/components/WebUIUpdateChecker.tsx @@ -43,7 +43,8 @@ export const WebUIUpdateChecker = () => { const [open, setOpen] = useState(false); const { - settings: { webUIInformAvailableUpdate }, + settings: { webUIInformAvailableUpdate, webUIInformVersionUpdated }, + loading: areMetadataServerSettingsLoading, } = useMetadataServerSettings(); const serverSettings = requestManager.useGetServerSettings(); const isAutoUpdateEnabled = !!serverSettings.data?.settings.webUIUpdateCheckInterval; @@ -86,8 +87,12 @@ export const WebUIUpdateChecker = () => { setWebUIVersion(newVersion); } - if (!isSameAsCurrent && !open) { - setOpen(true); + if (!areMetadataServerSettingsLoading && !isSameAsCurrent && !open) { + if (webUIInformVersionUpdated) { + setOpen(true); + } else { + setWebUIVersion(newVersion); + } } useEffect(() => { diff --git a/src/features/metadata/Metadata.constants.ts b/src/features/metadata/Metadata.constants.ts index 61dfc0fc..0914b2c1 100644 --- a/src/features/metadata/Metadata.constants.ts +++ b/src/features/metadata/Metadata.constants.ts @@ -135,6 +135,9 @@ export const APP_METADATA: Record< webUIInformAvailableUpdate: { convert: convertToBoolean, }, + webUIInformVersionUpdated: { + convert: convertToBoolean, + }, serverInformAvailableUpdate: { convert: convertToBoolean, }, @@ -449,6 +452,7 @@ export const GLOBAL_METADATA_KEYS: AppMetadataKeys[] = [ // updates 'webUIInformAvailableUpdate', + 'webUIInformVersionUpdated', 'serverInformAvailableUpdate', // sources diff --git a/src/features/settings/Settings.constants.ts b/src/features/settings/Settings.constants.ts index 19e363cb..a774a308 100644 --- a/src/features/settings/Settings.constants.ts +++ b/src/features/settings/Settings.constants.ts @@ -82,6 +82,7 @@ export const SERVER_SETTINGS_METADATA_DEFAULT: MetadataServerSettings = { // updates webUIInformAvailableUpdate: true, + webUIInformVersionUpdated: true, serverInformAvailableUpdate: true, // themes diff --git a/src/features/settings/screens/WebUISettings.tsx b/src/features/settings/screens/WebUISettings.tsx index bad9fca2..c82e7fe9 100644 --- a/src/features/settings/screens/WebUISettings.tsx +++ b/src/features/settings/screens/WebUISettings.tsx @@ -40,12 +40,12 @@ export const WebUISettings = () => { useAppTitle(t`WebUI`); const { - settings: { webUIInformAvailableUpdate }, + settings: { webUIInformAvailableUpdate, webUIInformVersionUpdated }, 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 { @@ -142,6 +142,17 @@ export const WebUISettings = () => { disabled={isCustomWebUI} updateCheckInterval={webUISettings.webUIUpdateCheckInterval} /> + + + updateMetadataServerSettings('webUIInformVersionUpdated', e.target.checked)} + /> + {!webUISettings.webUIUpdateCheckInterval && (