Feature/cleanup metadata related logic (#657)

* Remove unnecessary parameter from "requestUpdateServerMetadata"

* Streamline updating metadata server settings

* Move metadata related logic
This commit is contained in:
schroda
2024-03-16 16:21:15 +01:00
committed by GitHub
parent aea5dad0ce
commit 0c22a9012e
16 changed files with 91 additions and 84 deletions

View File

@@ -9,9 +9,8 @@
import { List, ListItem, ListItemText, MenuItem, Select } from '@mui/material';
import { useTranslation } from 'react-i18next';
import { useContext, useEffect } from 'react';
import { convertSettingsToMetadata, useMetadataServerSettings } from '@/util/metadataServerSettings.ts';
import { updateMetadataServerSettings, useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts';
import { MetadataServerSettingKeys, MetadataServerSettings } from '@/typings.ts';
import { convertToGqlMeta, requestUpdateServerMetadata } from '@/util/metadata.ts';
import { makeToast } from '@/components/util/Toast.tsx';
import { MutableListSetting } from '@/components/settings/MutableListSetting.tsx';
import { NavBarContext, useSetDefaultBackTo } from '@/components/context/NavbarContext.tsx';
@@ -53,9 +52,9 @@ export const DeviceSetting = () => {
setActiveDevice(DEFAULT_DEVICE);
}
requestUpdateServerMetadata(convertToGqlMeta(metadata) ?? [], [
[setting, convertSettingsToMetadata({ [setting]: value })[setting]],
]).catch(() => makeToast(t('global.error.label.failed_to_save_changes'), 'error'));
updateMetadataServerSettings(setting, value).catch(() =>
makeToast(t('global.error.label.failed_to_save_changes'), 'error'),
);
};
return (

View File

@@ -10,9 +10,8 @@ import { useTranslation } from 'react-i18next';
import { List, ListItem, ListItemText, Switch } from '@mui/material';
import { NumberSetting } from '@/components/settings/NumberSetting.tsx';
import { getPersistedServerSetting, usePersistedValue } from '@/util/usePersistedValue.tsx';
import { useMetadataServerSettings } from '@/util/metadataServerSettings.ts';
import { MetadataServerSettings } from '@/typings.ts';
import { convertToGqlMeta, requestUpdateServerMetadata } from '@/util/metadata.ts';
import { updateMetadataServerSettings, useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts';
import { MetadataDownloadSettings } from '@/typings.ts';
import { makeToast } from '@/components/util/Toast.tsx';
const MIN_LIMIT = 2;
@@ -23,7 +22,6 @@ export const DownloadAheadSetting = () => {
const { t } = useTranslation();
const {
metadata,
settings: { downloadAheadLimit },
} = useMetadataServerSettings();
@@ -35,9 +33,9 @@ export const DownloadAheadSetting = () => {
getPersistedServerSetting,
);
const updateSetting = (value: MetadataServerSettings['downloadAheadLimit']) => {
const updateSetting = (value: MetadataDownloadSettings['downloadAheadLimit']) => {
persistDownloadAheadLimit(value === 0 ? currentDownloadAheadLimit : value);
requestUpdateServerMetadata(convertToGqlMeta(metadata)! ?? {}, [['downloadAheadLimit', value]]).catch(() =>
updateMetadataServerSettings('downloadAheadLimit', value).catch(() =>
makeToast(t('search.error.label.failed_to_save_settings'), 'warning'),
);
};