[ESLint] Prefer named exports (#427)
This commit is contained in:
@@ -10,11 +10,11 @@ import { useState } from 'react';
|
||||
import Tabs from '@mui/material/Tabs';
|
||||
import Tab from '@mui/material/Tab';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Sources from '@/screens/Sources';
|
||||
import Extensions from '@/screens/Extensions';
|
||||
import TabPanel from '@/components/util/TabPanel';
|
||||
import { Sources } from '@/screens/Sources';
|
||||
import { Extensions } from '@/screens/Extensions';
|
||||
import { TabPanel } from '@/components/util/TabPanel';
|
||||
|
||||
export default function Browse() {
|
||||
export function Browse() {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const [tabNum, setTabNum] = useState<number>(0);
|
||||
|
||||
@@ -18,24 +18,24 @@ import { DragDropContext, Draggable } from 'react-beautiful-dnd';
|
||||
import Typography from '@mui/material/Typography';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import StrictModeDroppable from '@/lib/StrictModeDroppable';
|
||||
import makeToast from '@/components/util/Toast';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { StrictModeDroppable } from '@/lib/StrictModeDroppable';
|
||||
import { makeToast } from '@/components/util/Toast';
|
||||
import { NavbarToolbar } from '@/components/navbar/DefaultNavBar';
|
||||
import DownloadStateIndicator from '@/components/molecules/DownloadStateIndicator';
|
||||
import EmptyView from '@/components/util/EmptyView';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import { DownloadStateIndicator } from '@/components/molecules/DownloadStateIndicator';
|
||||
import { EmptyView } from '@/components/util/EmptyView';
|
||||
import { DownloadType } from '@/lib/graphql/generated/graphql.ts';
|
||||
import { TChapter } from '@/typings.ts';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
const DownloadQueue: React.FC = () => {
|
||||
export const DownloadQueue: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { data: downloaderData } = requestManager.useDownloadSubscription();
|
||||
const queue = (downloaderData?.downloadChanged.queue as DownloadType[]) ?? [];
|
||||
const status = downloaderData?.downloadChanged.state ?? 'STARTED';
|
||||
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
|
||||
const toggleQueueStatus = () => {
|
||||
if (status === 'STOPPED') {
|
||||
@@ -155,5 +155,3 @@ const DownloadQueue: React.FC = () => {
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default DownloadQueue;
|
||||
|
||||
@@ -14,9 +14,9 @@ import { StringParam, useQueryParam } from 'use-query-params';
|
||||
import { Virtuoso } from 'react-virtuoso';
|
||||
import { Typography, useMediaQuery, useTheme } from '@mui/material';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { extensionDefaultLangs, DefaultLanguage, langSortCmp } from '@/util/language';
|
||||
import useLocalStorage from '@/util/useLocalStorage';
|
||||
import { useLocalStorage } from '@/util/useLocalStorage';
|
||||
import {
|
||||
ExtensionState,
|
||||
GroupedExtensions,
|
||||
@@ -24,13 +24,13 @@ import {
|
||||
isExtensionStateOrLanguage,
|
||||
translateExtensionLanguage,
|
||||
} from '@/screens/util/Extensions';
|
||||
import AppbarSearch from '@/components/util/AppbarSearch';
|
||||
import LoadingPlaceholder from '@/components/util/LoadingPlaceholder';
|
||||
import { AppbarSearch } from '@/components/util/AppbarSearch';
|
||||
import { LoadingPlaceholder } from '@/components/util/LoadingPlaceholder';
|
||||
import { makeToaster } from '@/components/util/Toast';
|
||||
import LangSelect from '@/components/navbar/action/LangSelect';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import ExtensionCard from '@/components/ExtensionCard';
|
||||
import { LangSelect } from '@/components/navbar/action/LangSelect';
|
||||
import { ExtensionCard } from '@/components/ExtensionCard';
|
||||
import { PartialExtension } from '@/typings.ts';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
const LANGUAGE = 0;
|
||||
const EXTENSIONS = 1;
|
||||
@@ -89,11 +89,11 @@ function getExtensionsInfo(extensions: PartialExtension[]): {
|
||||
};
|
||||
}
|
||||
|
||||
export default function MangaExtensions() {
|
||||
export function Extensions() {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const inputRef = useRef<HTMLInputElement>(null);
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownExtensionLangs', extensionDefaultLangs());
|
||||
const [showNsfw] = useLocalStorage<boolean>('showNsfw', true);
|
||||
const theme = useTheme();
|
||||
|
||||
@@ -10,16 +10,16 @@ import { Chip, Tab, Tabs, styled, Box } from '@mui/material';
|
||||
import React, { useCallback, useContext, useEffect, useMemo } from 'react';
|
||||
import { useQueryParam, NumberParam } from 'use-query-params';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import EmptyView from '@/components/util/EmptyView';
|
||||
import LoadingPlaceholder from '@/components/util/LoadingPlaceholder';
|
||||
import TabPanel from '@/components/util/TabPanel';
|
||||
import LibraryToolbarMenu from '@/components/library/LibraryToolbarMenu';
|
||||
import LibraryMangaGrid from '@/components/library/LibraryMangaGrid';
|
||||
import AppbarSearch from '@/components/util/AppbarSearch';
|
||||
import UpdateChecker from '@/components/library/UpdateChecker';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { EmptyView } from '@/components/util/EmptyView';
|
||||
import { LoadingPlaceholder } from '@/components/util/LoadingPlaceholder';
|
||||
import { TabPanel } from '@/components/util/TabPanel';
|
||||
import { LibraryToolbarMenu } from '@/components/library/LibraryToolbarMenu';
|
||||
import { LibraryMangaGrid } from '@/components/library/LibraryMangaGrid';
|
||||
import { AppbarSearch } from '@/components/util/AppbarSearch';
|
||||
import { UpdateChecker } from '@/components/library/UpdateChecker';
|
||||
import { useLibraryOptionsContext } from '@/components/context/LibraryOptionsContext';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
const StyledGridWrapper = styled(Box)(({ theme }) => ({
|
||||
// TabsMenu height + TabsMenu bottom padding - grid item top padding
|
||||
@@ -58,7 +58,7 @@ const TitleSizeTag = (props: React.ComponentProps<typeof Chip>) => (
|
||||
<Chip {...props} size="small" sx={{ marginLeft: '5px' }} />
|
||||
);
|
||||
|
||||
export default function Library() {
|
||||
export function Library() {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { options } = useLibraryOptionsContext();
|
||||
@@ -91,7 +91,7 @@ export default function Library() {
|
||||
refetch();
|
||||
}, [refetch]);
|
||||
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
useEffect(() => {
|
||||
const title = t('library.title');
|
||||
const navBarTitle = (
|
||||
|
||||
@@ -12,21 +12,21 @@ import React, { useContext, useEffect, useRef } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import { isNetworkRequestInFlight } from '@apollo/client/core/networkStatus';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import NavbarContext, { useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
import ChapterList from '@/components/manga/ChapterList';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { NavBarContext, useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
import { ChapterList } from '@/components/manga/ChapterList';
|
||||
import { useRefreshManga } from '@/components/manga/hooks';
|
||||
import MangaDetails from '@/components/manga/MangaDetails';
|
||||
import MangaToolbarMenu from '@/components/manga/MangaToolbarMenu';
|
||||
import EmptyView from '@/components/util/EmptyView';
|
||||
import LoadingPlaceholder from '@/components/util/LoadingPlaceholder';
|
||||
import { MangaDetails } from '@/components/manga/MangaDetails';
|
||||
import { MangaToolbarMenu } from '@/components/manga/MangaToolbarMenu';
|
||||
import { EmptyView } from '@/components/util/EmptyView';
|
||||
import { LoadingPlaceholder } from '@/components/util/LoadingPlaceholder';
|
||||
|
||||
const AUTOFETCH_AGE = 1000 * 60 * 60 * 24; // 24 hours
|
||||
|
||||
const Manga: React.FC = () => {
|
||||
export const Manga: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
const { id } = useParams<{ id: string }>();
|
||||
const autofetchedRef = useRef(false);
|
||||
|
||||
@@ -100,5 +100,3 @@ const Manga: React.FC = () => {
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
export default Manga;
|
||||
|
||||
@@ -12,21 +12,21 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom';
|
||||
import { Box } from '@mui/material';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { ChapterOffset, IReaderSettings, ReaderType, TChapter, TManga, TranslationKey } from '@/typings';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import {
|
||||
checkAndHandleMissingStoredReaderSettings,
|
||||
getReaderSettingsFor,
|
||||
useDefaultReaderSettings,
|
||||
} from '@/util/readerSettings';
|
||||
import { requestUpdateMangaMetadata } from '@/util/metadata';
|
||||
import HorizontalPager from '@/components/reader/pager/HorizontalPager';
|
||||
import PageNumber from '@/components/reader/PageNumber';
|
||||
import PagedPager from '@/components/reader/pager/PagedPager';
|
||||
import DoublePagedPager from '@/components/reader/pager/DoublePagedPager';
|
||||
import VerticalPager from '@/components/reader/pager/VerticalPager';
|
||||
import ReaderNavBar from '@/components/navbar/ReaderNavBar';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import makeToast from '@/components/util/Toast';
|
||||
import { HorizontalPager } from '@/components/reader/pager/HorizontalPager';
|
||||
import { PageNumber } from '@/components/reader/PageNumber';
|
||||
import { PagedPager } from '@/components/reader/pager/PagedPager';
|
||||
import { DoublePagedPager } from '@/components/reader/pager/DoublePagedPager';
|
||||
import { VerticalPager } from '@/components/reader/pager/VerticalPager';
|
||||
import { ReaderNavBar } from '@/components/navbar/ReaderNavBar';
|
||||
import { makeToast } from '@/components/util/Toast';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
const isDupChapter = async (chapterIndex: number, currentChapter: TChapter) => {
|
||||
const nextChapter = await requestManager.getChapter(currentChapter.manga.id, chapterIndex).response;
|
||||
@@ -87,7 +87,7 @@ const initialChapter = {
|
||||
name: 'Loading...',
|
||||
} as unknown as TChapter;
|
||||
|
||||
export default function Reader() {
|
||||
export function Reader() {
|
||||
const { t } = useTranslation();
|
||||
const navigate = useNavigate();
|
||||
const location = useLocation();
|
||||
@@ -148,7 +148,7 @@ export default function Reader() {
|
||||
const [wasLastPageReadSet, setWasLastPageReadSet] = useState(false);
|
||||
const [curPage, setCurPage] = useState<number>(0);
|
||||
const [pageToScrollTo, setPageToScrollTo] = useState<number | undefined>(undefined);
|
||||
const { setOverride, setTitle } = useContext(NavbarContext);
|
||||
const { setOverride, setTitle } = useContext(NavBarContext);
|
||||
const [retrievingNextChapter, setRetrievingNextChapter] = useState(false);
|
||||
|
||||
const { settings: defaultSettings, loading: areDefaultSettingsLoading } = useDefaultReaderSettings();
|
||||
|
||||
@@ -12,15 +12,15 @@ import { Link } from 'react-router-dom';
|
||||
import { StringParam, useQueryParam } from 'use-query-params';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { ISource } from '@/typings';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import useLocalStorage from '@/util/useLocalStorage';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { useLocalStorage } from '@/util/useLocalStorage';
|
||||
import { langSortCmp, sourceDefualtLangs, sourceForcedDefaultLangs } from '@/util/language';
|
||||
import { translateExtensionLanguage } from '@/screens/util/Extensions';
|
||||
import AppbarSearch from '@/components/util/AppbarSearch';
|
||||
import LangSelect from '@/components/navbar/action/LangSelect';
|
||||
import MangaGrid from '@/components/MangaGrid';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import { AppbarSearch } from '@/components/util/AppbarSearch';
|
||||
import { LangSelect } from '@/components/navbar/action/LangSelect';
|
||||
import { MangaGrid } from '@/components/MangaGrid';
|
||||
import { useDebounce } from '@/components/manga/hooks';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
type SourceLoadingState = { isLoading: boolean; hasResults: boolean; emptySearch: boolean };
|
||||
type SourceToLoadingStateMap = Map<string, SourceLoadingState>;
|
||||
@@ -155,10 +155,10 @@ const SourceSearchPreview = React.memo(
|
||||
},
|
||||
);
|
||||
|
||||
const SearchAll: React.FC = () => {
|
||||
export const SearchAll: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
|
||||
const [query] = useQueryParam('query', StringParam);
|
||||
const searchString = useDebounce(query, TRIGGER_SEARCH_THRESHOLD);
|
||||
@@ -236,5 +236,3 @@ const SearchAll: React.FC = () => {
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default SearchAll;
|
||||
|
||||
@@ -35,17 +35,17 @@ import ViewModuleIcon from '@mui/icons-material/ViewModule';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import LanguageIcon from '@mui/icons-material/Language';
|
||||
import CollectionsOutlinedBookmarkIcon from '@mui/icons-material/CollectionsBookmarkOutlined';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { langCodeToName } from '@/util/language';
|
||||
import useLocalStorage from '@/util/useLocalStorage';
|
||||
import ListItemLink from '@/components/util/ListItemLink';
|
||||
import DarkTheme from '@/components/context/DarkTheme';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import { useLocalStorage } from '@/util/useLocalStorage';
|
||||
import { ListItemLink } from '@/components/util/ListItemLink';
|
||||
import { DarkTheme } from '@/components/context/DarkTheme';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
export default function Settings() {
|
||||
export function Settings() {
|
||||
const { t, i18n } = useTranslation();
|
||||
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
useEffect(() => {
|
||||
setTitle(t('settings.title'));
|
||||
setAction(null);
|
||||
|
||||
@@ -10,14 +10,14 @@ import { createElement, useContext, useEffect } from 'react';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import List from '@mui/material/List';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import cloneObject from '@/util/cloneObject';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { cloneObject } from '@/util/cloneObject';
|
||||
import { SwitchPreferenceCompat, CheckBoxPreference } from '@/components/sourceConfiguration/TwoStatePreference';
|
||||
import ListPreference from '@/components/sourceConfiguration/ListPreference';
|
||||
import EditTextPreference from '@/components/sourceConfiguration/EditTextPreference';
|
||||
import MultiSelectListPreference from '@/components/sourceConfiguration/MultiSelectListPreference';
|
||||
import { ListPreference } from '@/components/sourceConfiguration/ListPreference';
|
||||
import { EditTextPreference } from '@/components/sourceConfiguration/EditTextPreference';
|
||||
import { MultiSelectListPreference } from '@/components/sourceConfiguration/MultiSelectListPreference';
|
||||
import { PreferenceProps } from '@/typings.ts';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
function getPrefComponent(type: string) {
|
||||
switch (type) {
|
||||
@@ -36,9 +36,9 @@ function getPrefComponent(type: string) {
|
||||
}
|
||||
}
|
||||
|
||||
export default function SourceConfigure() {
|
||||
export function SourceConfigure() {
|
||||
const { t } = useTranslation();
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
|
||||
useEffect(() => {
|
||||
setTitle(t('source.configuration.title'));
|
||||
|
||||
@@ -18,18 +18,18 @@ import FavoriteIcon from '@mui/icons-material/Favorite';
|
||||
import NewReleasesIcon from '@mui/icons-material/NewReleases';
|
||||
import FilterListIcon from '@mui/icons-material/FilterList';
|
||||
import { TPartialManga, TranslationKey } from '@/typings';
|
||||
import requestManager, { AbortableApolloUseMutationPaginatedResponse } from '@/lib/requests/RequestManager.ts';
|
||||
import { requestManager, AbortableApolloUseMutationPaginatedResponse } from '@/lib/requests/RequestManager.ts';
|
||||
import { useDebounce } from '@/components/manga/hooks';
|
||||
import { useLibraryOptionsContext } from '@/components/context/LibraryOptionsContext';
|
||||
import SourceGridLayout from '@/components/source/GridLayouts';
|
||||
import AppbarSearch from '@/components/util/AppbarSearch';
|
||||
import SourceOptions from '@/components/source/SourceOptions';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import SourceMangaGrid from '@/components/source/SourceMangaGrid';
|
||||
import { SourceGridLayout } from '@/components/source/GridLayouts';
|
||||
import { AppbarSearch } from '@/components/util/AppbarSearch';
|
||||
import { SourceOptions } from '@/components/source/SourceOptions';
|
||||
import { SourceMangaGrid } from '@/components/source/SourceMangaGrid';
|
||||
import {
|
||||
GetSourceMangasFetchMutation,
|
||||
GetSourceMangasFetchMutationVariables,
|
||||
} from '@/lib/graphql/generated/graphql.ts';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
const ContentTypeMenu = styled('div')(({ theme }) => ({
|
||||
display: 'flex',
|
||||
@@ -191,9 +191,9 @@ const useSourceManga = (
|
||||
];
|
||||
};
|
||||
|
||||
export default function SourceMangas() {
|
||||
export function SourceMangas() {
|
||||
const { t } = useTranslation();
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
const theme = useTheme();
|
||||
const isLargeScreen = useMediaQuery(theme.breakpoints.up('sm'));
|
||||
|
||||
|
||||
@@ -12,14 +12,14 @@ import TravelExploreIcon from '@mui/icons-material/TravelExplore';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { ISource } from '@/typings';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import useLocalStorage from '@/util/useLocalStorage';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { useLocalStorage } from '@/util/useLocalStorage';
|
||||
import { sourceDefualtLangs, sourceForcedDefaultLangs, langSortCmp } from '@/util/language';
|
||||
import { translateExtensionLanguage } from '@/screens/util/Extensions';
|
||||
import LoadingPlaceholder from '@/components/util/LoadingPlaceholder';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import SourceCard from '@/components/SourceCard';
|
||||
import LangSelect from '@/components/navbar/action/LangSelect';
|
||||
import { LoadingPlaceholder } from '@/components/util/LoadingPlaceholder';
|
||||
import { SourceCard } from '@/components/SourceCard';
|
||||
import { LangSelect } from '@/components/navbar/action/LangSelect';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
function sourceToLangList(sources: ISource[]) {
|
||||
const result: string[] = [];
|
||||
@@ -46,9 +46,9 @@ function groupByLang(sources: ISource[]) {
|
||||
return result;
|
||||
}
|
||||
|
||||
export default function Sources() {
|
||||
export function Sources() {
|
||||
const { t } = useTranslation();
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
|
||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs());
|
||||
const [showNsfw] = useLocalStorage<boolean>('showNsfw', true);
|
||||
|
||||
@@ -18,13 +18,13 @@ import { Link, useLocation } from 'react-router-dom';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { t as translate } from 'i18next';
|
||||
import { GroupedVirtuoso } from 'react-virtuoso';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import LoadingPlaceholder from '@/components/util/LoadingPlaceholder';
|
||||
import EmptyView from '@/components/util/EmptyView';
|
||||
import DownloadStateIndicator from '@/components/molecules/DownloadStateIndicator';
|
||||
import NavbarContext from '@/components/context/NavbarContext';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { LoadingPlaceholder } from '@/components/util/LoadingPlaceholder';
|
||||
import { EmptyView } from '@/components/util/EmptyView';
|
||||
import { DownloadStateIndicator } from '@/components/molecules/DownloadStateIndicator';
|
||||
import { DownloadType } from '@/lib/graphql/generated/graphql.ts';
|
||||
import { TChapter } from '@/typings.ts';
|
||||
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
|
||||
|
||||
const StyledGroupedVirtuoso = styled(GroupedVirtuoso)(({ theme }) => ({
|
||||
// 64px header
|
||||
@@ -96,11 +96,11 @@ const groupByDate = (updates: TChapter[]): [date: string, items: number][] => {
|
||||
return [...dateToItemMap.entries()];
|
||||
};
|
||||
|
||||
const Updates: React.FC = () => {
|
||||
export const Updates: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
const location = useLocation();
|
||||
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
const {
|
||||
data: chapterUpdateData,
|
||||
loading: isLoading,
|
||||
@@ -229,5 +229,3 @@ const Updates: React.FC = () => {
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default Updates;
|
||||
|
||||
@@ -11,14 +11,14 @@ import List from '@mui/material/List';
|
||||
import ListItem from '@mui/material/ListItem';
|
||||
import ListItemText from '@mui/material/ListItemText';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import ListItemLink from '@/components/util/ListItemLink';
|
||||
import NavbarContext, { useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
import LoadingPlaceholder from '@/components/util/LoadingPlaceholder';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { ListItemLink } from '@/components/util/ListItemLink';
|
||||
import { NavBarContext, useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
import { LoadingPlaceholder } from '@/components/util/LoadingPlaceholder';
|
||||
|
||||
export default function About() {
|
||||
export function About() {
|
||||
const { t } = useTranslation();
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
|
||||
useEffect(() => {
|
||||
setTitle(t('settings.about.title'));
|
||||
|
||||
@@ -12,14 +12,14 @@ import ListItemText from '@mui/material/ListItemText';
|
||||
import { fromEvent } from 'file-selector';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { ListItemButton } from '@mui/material';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import makeToast from '@/components/util/Toast';
|
||||
import ListItemLink from '@/components/util/ListItemLink';
|
||||
import NavbarContext, { useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { makeToast } from '@/components/util/Toast';
|
||||
import { ListItemLink } from '@/components/util/ListItemLink';
|
||||
import { NavBarContext, useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
|
||||
export default function Backup() {
|
||||
export function Backup() {
|
||||
const { t } = useTranslation();
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
useEffect(() => {
|
||||
setTitle(t('settings.backup.title'));
|
||||
setAction(null);
|
||||
|
||||
@@ -24,10 +24,10 @@ import DialogTitle from '@mui/material/DialogTitle';
|
||||
import Checkbox from '@mui/material/Checkbox';
|
||||
import FormControlLabel from '@mui/material/FormControlLabel';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import requestManager from '@/lib/requests/RequestManager.ts';
|
||||
import StrictModeDroppable from '@/lib/StrictModeDroppable';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { StrictModeDroppable } from '@/lib/StrictModeDroppable';
|
||||
import { DEFAULT_FULL_FAB_HEIGHT } from '@/components/util/StyledFab';
|
||||
import NavbarContext, { useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
import { NavBarContext, useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
import { TCategory } from '@/typings.ts';
|
||||
|
||||
const getItemStyle = (
|
||||
@@ -43,10 +43,10 @@ const getItemStyle = (
|
||||
}),
|
||||
});
|
||||
|
||||
export default function Categories() {
|
||||
export function Categories() {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
useEffect(() => {
|
||||
setTitle(t('category.title.categories'));
|
||||
setAction(null);
|
||||
|
||||
@@ -17,13 +17,13 @@ import {
|
||||
getDefaultSettings,
|
||||
useDefaultReaderSettings,
|
||||
} from '@/util/readerSettings';
|
||||
import ReaderSettingsOptions from '@/components/reader/ReaderSettingsOptions';
|
||||
import makeToast from '@/components/util/Toast';
|
||||
import NavbarContext, { useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
import { ReaderSettingsOptions } from '@/components/reader/ReaderSettingsOptions';
|
||||
import { makeToast } from '@/components/util/Toast';
|
||||
import { NavBarContext, useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
|
||||
export default function DefaultReaderSettings() {
|
||||
export function DefaultReaderSettings() {
|
||||
const { t } = useTranslation();
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
useEffect(() => {
|
||||
setTitle(t('reader.settings.title.default_reader_settings'));
|
||||
setAction(null);
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useContext, useEffect } from 'react';
|
||||
import NavbarContext, { useSetDefaultBackTo } from '@/components/context/NavbarContext.tsx';
|
||||
import { NavBarContext, useSetDefaultBackTo } from '@/components/context/NavbarContext.tsx';
|
||||
import { GlobalUpdateSettings } from '@/components/globalUpdate/GlobalUpdateSettings.tsx';
|
||||
import SearchSettings from '@/screens/settings/SearchSettings.tsx';
|
||||
import { SearchSettings } from '@/screens/settings/SearchSettings.tsx';
|
||||
|
||||
export default function LibrarySettings() {
|
||||
export function LibrarySettings() {
|
||||
const { t } = useTranslation();
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const { setTitle, setAction } = useContext(NavBarContext);
|
||||
|
||||
useEffect(() => {
|
||||
setTitle(t('library.settings.title'));
|
||||
|
||||
@@ -15,10 +15,10 @@ import ListSubheader from '@mui/material/ListSubheader';
|
||||
import { SearchMetadataKeys } from '@/typings';
|
||||
import { convertToGqlMeta, requestUpdateServerMetadata } from '@/util/metadata';
|
||||
import { useSearchSettings } from '@/util/searchSettings';
|
||||
import makeToast from '@/components/util/Toast';
|
||||
import { makeToast } from '@/components/util/Toast';
|
||||
import { useSetDefaultBackTo } from '@/components/context/NavbarContext';
|
||||
|
||||
export default function SearchSettings() {
|
||||
export function SearchSettings() {
|
||||
const { t } = useTranslation();
|
||||
const { metadata, settings } = useSearchSettings();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user