diff --git a/src/modules/downloads/components/DownloadConversionSetting.tsx b/src/modules/downloads/components/DownloadConversionSetting.tsx index 42332341..25c5cfcf 100644 --- a/src/modules/downloads/components/DownloadConversionSetting.tsx +++ b/src/modules/downloads/components/DownloadConversionSetting.tsx @@ -74,6 +74,7 @@ const maybeAddDefault = (conversions: SettingsDownloadConversion[]) => { { mimeType: DEFAULT_MIME_TYPE, target: '', + compressionLevel: null, }, ]), ...conversions, @@ -247,7 +248,7 @@ export const DownloadConversionSetting = ({ updateSetting, }: { conversions: SettingsDownloadConversion[]; - updateSetting: (conversions: SettingsDownloadConversion[]) => void; + updateSetting: (conversions: SettingsDownloadConversion[]) => Promise; }) => { const { t } = useTranslation(); @@ -257,13 +258,17 @@ export const DownloadConversionSetting = ({ const hasInvalidConversion = containsInvalidConversion(tmpConversions); - const hasChanged = didUpdateConversions(conversions, tmpConversions); + const hasChanged = didUpdateConversions(normalizeConversions(maybeAddDefault(conversions)), tmpConversions); - const onClose = () => { - setTmpConversions(normalizeConversions(maybeAddDefault(conversions))); + const onClose = (newConversions: SettingsDownloadConversion[] = conversions) => { + setTmpConversions(normalizeConversions(maybeAddDefault(newConversions))); setIsDialogOpen(false); }; + const onCancel = () => { + onClose(conversions); + }; + return ( <> setIsDialogOpen(true)}> @@ -275,7 +280,7 @@ export const DownloadConversionSetting = ({ secondaryTypographyProps={{ style: { display: 'flex', flexDirection: 'column' } }} /> - + {t('download.settings.conversion.title')} @@ -322,16 +327,23 @@ export const DownloadConversionSetting = ({ - + diff --git a/src/modules/downloads/screens/DownloadSettings.tsx b/src/modules/downloads/screens/DownloadSettings.tsx index b48c6323..89728fc6 100644 --- a/src/modules/downloads/screens/DownloadSettings.tsx +++ b/src/modules/downloads/screens/DownloadSettings.tsx @@ -108,10 +108,11 @@ export const DownloadSettings = () => { const updateSetting = ( setting: Setting, value: DownloadSettingsType[Setting], - ) => { - mutateSettings({ variables: { input: { settings: { [setting]: value } } } }).catch((e) => - makeToast(t('global.error.label.failed_to_save_changes'), 'error', getErrorMessage(e)), - ); + ): Promise => { + const mutation = mutateSettings({ variables: { input: { settings: { [setting]: value } } } }); + mutation.catch((e) => makeToast(t('global.error.label.failed_to_save_changes'), 'error', getErrorMessage(e))); + + return mutation; }; const updateMetadataSetting = createUpdateMetadataServerSettings((e) =>