/* * 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 { useContext, useLayoutEffect } from 'react'; import AutoStoriesIcon from '@mui/icons-material/AutoStories'; import List from '@mui/material/List'; import ListAltIcon from '@mui/icons-material/ListAlt'; import BackupIcon from '@mui/icons-material/Backup'; import InfoIcon from '@mui/icons-material/Info'; 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 { ListItemLink } from '@/modules/core/components/ListItemLink.tsx'; import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { makeToast } from '@/lib/ui/Toast.ts'; export function Settings() { const { t } = useTranslation(); const { setTitle, setAction } = useContext(NavBarContext); useLayoutEffect(() => { setTitle(t('settings.title')); setAction(null); return () => { setTitle(''); setAction(null); }; }, [t]); const [triggerClearServerCache, { loading: isClearingServerCache }] = requestManager.useClearServerCache(); const clearServerCache = async () => { try { await triggerClearServerCache(); makeToast(t('settings.clear_cache.label.success'), 'success'); } catch (e) { makeToast(t('settings.clear_cache.label.failure'), 'error'); } }; return ( ); }