Use gql for "sources"

This commit is contained in:
schroda
2023-09-01 20:29:19 +02:00
parent 4a80e18cd0
commit e1f338d013
4 changed files with 20 additions and 8 deletions

View File

@@ -29,7 +29,6 @@ import {
IManga, IManga,
IMangaChapter, IMangaChapter,
IncludeInGlobalUpdate, IncludeInGlobalUpdate,
ISource,
ISourceFilters, ISourceFilters,
IUpdateStatus, IUpdateStatus,
PaginatedList, PaginatedList,
@@ -51,6 +50,10 @@ import {
GetExtensionsQueryVariables, GetExtensionsQueryVariables,
GetGlobalMetadatasQuery, GetGlobalMetadatasQuery,
GetGlobalMetadatasQueryVariables, GetGlobalMetadatasQueryVariables,
GetSourceQuery,
GetSourceQueryVariables,
GetSourcesQuery,
GetSourcesQueryVariables,
InstallExternalExtensionMutation, InstallExternalExtensionMutation,
InstallExternalExtensionMutationVariables, InstallExternalExtensionMutationVariables,
SetGlobalMetadataMutation, SetGlobalMetadataMutation,
@@ -68,6 +71,7 @@ import {
INSTALL_EXTERNAL_EXTENSION, INSTALL_EXTERNAL_EXTENSION,
UPDATE_EXTENSION, UPDATE_EXTENSION,
} from '@/lib/graphql/mutations/ExtensionMutation.ts'; } from '@/lib/graphql/mutations/ExtensionMutation.ts';
import { GET_SOURCE, GET_SOURCES } from '@/lib/graphql/queries/SourceQuery.ts';
enum SWRHttpMethod { enum SWRHttpMethod {
SWR_GET, SWR_GET,
@@ -513,12 +517,17 @@ export class RequestManager {
return this.getValidImgUrlFor(`extension/icon/${extension}`); return this.getValidImgUrlFor(`extension/icon/${extension}`);
} }
public useGetSourceList(swrOptions?: SWROptions<ISource[]>): AbortableSWRResponse<ISource[]> { public useGetSourceList(
return this.doRequest(HttpMethod.SWR_GET, 'source/list', { swrOptions }); options?: QueryHookOptions<GetSourcesQuery, GetSourcesQueryVariables>,
): AbortableApolloUseQueryResponse<GetSourcesQuery, GetSourcesQueryVariables> {
return this.doRequestNew(GQLMethod.USE_QUERY, GET_SOURCES, {}, options);
} }
public useGetSource(sourceId: string, swrOptions?: SWROptions<ISource>): AbortableSWRResponse<ISource> { public useGetSource(
return this.doRequest(HttpMethod.SWR_GET, `source/${sourceId}`, { swrOptions }); id: string,
options?: QueryHookOptions<GetSourceQuery, GetSourceQueryVariables>,
): AbortableApolloUseQueryResponse<GetSourceQuery, GetSourceQueryVariables> {
return this.doRequestNew(GQLMethod.USE_QUERY, GET_SOURCE, { id }, options);
} }
public useGetSourcePopularMangas( public useGetSourcePopularMangas(

View File

@@ -169,7 +169,8 @@ const SearchAll: React.FC = () => {
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs()); const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs());
const [showNsfw] = useLocalStorage<boolean>('showNsfw', true); const [showNsfw] = useLocalStorage<boolean>('showNsfw', true);
const { data: sources = [] } = requestManager.useGetSourceList(); const { data } = requestManager.useGetSourceList();
const sources = data?.sources.nodes ?? [];
const [sourceToLoadingStateMap, setSourceToLoadingStateMap] = useState<SourceToLoadingStateMap>(new Map()); const [sourceToLoadingStateMap, setSourceToLoadingStateMap] = useState<SourceToLoadingStateMap>(new Map());
const debouncedSourceToLoadingStateMap = useDebounce(sourceToLoadingStateMap, 500); const debouncedSourceToLoadingStateMap = useDebounce(sourceToLoadingStateMap, 500);

View File

@@ -188,7 +188,8 @@ export default function SourceMangas() {
abortRequest, abortRequest,
} = useSourceManga(sourceId, contentType, searchTerm, filtersToApply, isLargeScreen ? 2 : 1); } = useSourceManga(sourceId, contentType, searchTerm, filtersToApply, isLargeScreen ? 2 : 1);
const { data: filters = [], mutate: mutateFilters } = requestManager.useGetSourceFilters(sourceId); const { data: filters = [], mutate: mutateFilters } = requestManager.useGetSourceFilters(sourceId);
const { data: source } = requestManager.useGetSource(sourceId); const { data } = requestManager.useGetSource(sourceId);
const source = data?.source;
const [triggerDataRefresh, setTriggerDataRefresh] = useState(false); const [triggerDataRefresh, setTriggerDataRefresh] = useState(false);
const message = !isLoading ? t(SOURCE_CONTENT_TYPE_TO_ERROR_MSG_KEY[contentType]) : undefined; const message = !isLoading ? t(SOURCE_CONTENT_TYPE_TO_ERROR_MSG_KEY[contentType]) : undefined;

View File

@@ -53,7 +53,8 @@ export default function Sources() {
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs()); const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs());
const [showNsfw] = useLocalStorage<boolean>('showNsfw', true); const [showNsfw] = useLocalStorage<boolean>('showNsfw', true);
const { data: sources, isLoading } = requestManager.useGetSourceList(); const { data, loading: isLoading } = requestManager.useGetSourceList();
const sources = data?.sources.nodes;
const navigate = useNavigate(); const navigate = useNavigate();