Use gql for "sources"
This commit is contained in:
@@ -29,7 +29,6 @@ import {
|
||||
IManga,
|
||||
IMangaChapter,
|
||||
IncludeInGlobalUpdate,
|
||||
ISource,
|
||||
ISourceFilters,
|
||||
IUpdateStatus,
|
||||
PaginatedList,
|
||||
@@ -51,6 +50,10 @@ import {
|
||||
GetExtensionsQueryVariables,
|
||||
GetGlobalMetadatasQuery,
|
||||
GetGlobalMetadatasQueryVariables,
|
||||
GetSourceQuery,
|
||||
GetSourceQueryVariables,
|
||||
GetSourcesQuery,
|
||||
GetSourcesQueryVariables,
|
||||
InstallExternalExtensionMutation,
|
||||
InstallExternalExtensionMutationVariables,
|
||||
SetGlobalMetadataMutation,
|
||||
@@ -68,6 +71,7 @@ import {
|
||||
INSTALL_EXTERNAL_EXTENSION,
|
||||
UPDATE_EXTENSION,
|
||||
} from '@/lib/graphql/mutations/ExtensionMutation.ts';
|
||||
import { GET_SOURCE, GET_SOURCES } from '@/lib/graphql/queries/SourceQuery.ts';
|
||||
|
||||
enum SWRHttpMethod {
|
||||
SWR_GET,
|
||||
@@ -513,12 +517,17 @@ export class RequestManager {
|
||||
return this.getValidImgUrlFor(`extension/icon/${extension}`);
|
||||
}
|
||||
|
||||
public useGetSourceList(swrOptions?: SWROptions<ISource[]>): AbortableSWRResponse<ISource[]> {
|
||||
return this.doRequest(HttpMethod.SWR_GET, 'source/list', { swrOptions });
|
||||
public useGetSourceList(
|
||||
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> {
|
||||
return this.doRequest(HttpMethod.SWR_GET, `source/${sourceId}`, { swrOptions });
|
||||
public useGetSource(
|
||||
id: string,
|
||||
options?: QueryHookOptions<GetSourceQuery, GetSourceQueryVariables>,
|
||||
): AbortableApolloUseQueryResponse<GetSourceQuery, GetSourceQueryVariables> {
|
||||
return this.doRequestNew(GQLMethod.USE_QUERY, GET_SOURCE, { id }, options);
|
||||
}
|
||||
|
||||
public useGetSourcePopularMangas(
|
||||
|
||||
@@ -169,7 +169,8 @@ const SearchAll: React.FC = () => {
|
||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs());
|
||||
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 debouncedSourceToLoadingStateMap = useDebounce(sourceToLoadingStateMap, 500);
|
||||
|
||||
|
||||
@@ -188,7 +188,8 @@ export default function SourceMangas() {
|
||||
abortRequest,
|
||||
} = useSourceManga(sourceId, contentType, searchTerm, filtersToApply, isLargeScreen ? 2 : 1);
|
||||
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 message = !isLoading ? t(SOURCE_CONTENT_TYPE_TO_ERROR_MSG_KEY[contentType]) : undefined;
|
||||
|
||||
@@ -53,7 +53,8 @@ export default function Sources() {
|
||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs());
|
||||
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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user