Add setting to disable tracking update while reading
This commit is contained in:
@@ -11,11 +11,20 @@ import { useContext, useEffect } from 'react';
|
||||
import List from '@mui/material/List';
|
||||
|
||||
import ListSubheader from '@mui/material/ListSubheader';
|
||||
import ListItem from '@mui/material/ListItem';
|
||||
import ListItemText from '@mui/material/ListItemText';
|
||||
import Switch from '@mui/material/Switch';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { EmptyView } from '@/components/util/EmptyView.tsx';
|
||||
import { LoadingPlaceholder } from '@/components/util/LoadingPlaceholder.tsx';
|
||||
import { SettingsTrackerCard } from '@/components/tracker/SettingsTrackerCard.tsx';
|
||||
import {
|
||||
createUpdateMetadataServerSettings,
|
||||
useMetadataServerSettings,
|
||||
} from '@/lib/metadata/metadataServerSettings.ts';
|
||||
import { MetadataTrackingSettings } from '@/typings.ts';
|
||||
import { makeToast } from '@/components/util/Toast.tsx';
|
||||
|
||||
export const TrackingSettings = () => {
|
||||
const { t } = useTranslation();
|
||||
@@ -25,6 +34,13 @@ export const TrackingSettings = () => {
|
||||
setTitle(t('tracking.settings.title.settings'));
|
||||
}, [t]);
|
||||
|
||||
const {
|
||||
settings: { updateProgressAfterReading },
|
||||
} = useMetadataServerSettings();
|
||||
const updateTrackingSettings = createUpdateMetadataServerSettings<keyof MetadataTrackingSettings>(() =>
|
||||
makeToast(t('global.error.label.failed_to_save_changes'), 'error'),
|
||||
);
|
||||
|
||||
const { data, loading, error } = requestManager.useGetTrackerList();
|
||||
const trackers = data?.trackers.nodes ?? [];
|
||||
|
||||
@@ -37,16 +53,28 @@ export const TrackingSettings = () => {
|
||||
}
|
||||
|
||||
return (
|
||||
<List
|
||||
subheader={
|
||||
<ListSubheader component="div" id="tracking-trackers">
|
||||
{t('tracking.settings.title.trackers')}
|
||||
</ListSubheader>
|
||||
}
|
||||
>
|
||||
{trackers.map((tracker) => (
|
||||
<SettingsTrackerCard key={tracker.id} tracker={tracker} />
|
||||
))}
|
||||
</List>
|
||||
<>
|
||||
<List>
|
||||
<ListItem>
|
||||
<ListItemText primary={t('tracking.settings.label.update_progress_reading')} />
|
||||
<Switch
|
||||
edge="end"
|
||||
checked={updateProgressAfterReading}
|
||||
onChange={(e) => updateTrackingSettings('updateProgressAfterReading', e.target.checked)}
|
||||
/>
|
||||
</ListItem>
|
||||
</List>
|
||||
<List
|
||||
subheader={
|
||||
<ListSubheader component="div" id="tracking-trackers">
|
||||
{t('tracking.settings.title.trackers')}
|
||||
</ListSubheader>
|
||||
}
|
||||
>
|
||||
{trackers.map((tracker) => (
|
||||
<SettingsTrackerCard key={tracker.id} tracker={tracker} />
|
||||
))}
|
||||
</List>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user