/* * Copyright (C) Contributors to the Suwayomi project * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import AutoStoriesIcon from '@mui/icons-material/AutoStories'; import List from '@mui/material/List'; import BackupIcon from '@mui/icons-material/Backup'; import ListItemIcon from '@mui/material/ListItemIcon'; import ListItemText from '@mui/material/ListItemText'; import ListItemButton from '@mui/material/ListItemButton'; import { useTranslation } from 'react-i18next'; import CollectionsOutlinedBookmarkIcon from '@mui/icons-material/CollectionsBookmarkOutlined'; import GetAppOutlinedIcon from '@mui/icons-material/GetAppOutlined'; import DnsIcon from '@mui/icons-material/Dns'; import WebIcon from '@mui/icons-material/Web'; import DeleteForeverIcon from '@mui/icons-material/DeleteForever'; import ExploreOutlinedIcon from '@mui/icons-material/ExploreOutlined'; import DevicesIcon from '@mui/icons-material/Devices'; import SyncIcon from '@mui/icons-material/Sync'; import PaletteIcon from '@mui/icons-material/Palette'; import HistoryIcon from '@mui/icons-material/History'; import { ListItemLink } from '@/base/components/lists/ListItemLink.tsx'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { makeToast } from '@/base/utils/Toast.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { useAppTitle } from '@/features/navigation-bar/hooks/useAppTitle.ts'; import { ImageCache } from '@/lib/service-worker/ImageCache.ts'; export function Settings() { const { t } = useTranslation(); useAppTitle(t('settings.title')); const [triggerClearServerCache, { loading: isClearingServerCache }] = requestManager.useClearServerCache(); const clearCache = async () => { try { await Promise.all([triggerClearServerCache(), ImageCache.clear()]); makeToast(t('settings.clear_cache.label.success'), 'success'); } catch (e) { makeToast(t('settings.clear_cache.label.failure'), 'error', getErrorMessage(e)); } }; return ( ); }