Update "getMangasChapterIdsWithState"
This commit is contained in:
@@ -50,10 +50,12 @@ import { MigrationManager } from '@/features/migration/MigrationManager.ts';
|
||||
import uniq from 'lodash/fp/uniq';
|
||||
import { ReactRouter } from '@/lib/react-router/ReactRouter.ts';
|
||||
import { AppRoutes } from '@/base/AppRoute.constants.ts';
|
||||
import type {
|
||||
ChapterConditionInput,
|
||||
UpdateMangaCategoriesPatchInput,
|
||||
import {
|
||||
ChapterOrderBy,
|
||||
type ChapterConditionInput,
|
||||
type UpdateMangaCategoriesPatchInput,
|
||||
} from '@/lib/graphql/generated/graphql-base.types.ts';
|
||||
import { GET_MANGAS_CHAPTER_IDS_WITH_STATE } from '@/lib/graphql/chapter/ChapterQuery.ts';
|
||||
|
||||
const I18N_PLURAL = 9999;
|
||||
|
||||
@@ -183,7 +185,15 @@ export class Mangas {
|
||||
mangaIds: number[],
|
||||
state: Pick<ChapterConditionInput, 'isRead' | 'isDownloaded' | 'isBookmarked'>,
|
||||
): Promise<GetMangasChapterIdsWithStateQuery['chapters']['nodes']> {
|
||||
const { data } = await requestManager.getMangasChapterIdsWithState(mangaIds, state).response;
|
||||
const { data } = await requestManager.getChapters<
|
||||
GetMangasChapterIdsWithStateQuery,
|
||||
GetMangasChapterIdsWithStateQueryVariables
|
||||
>(GET_MANGAS_CHAPTER_IDS_WITH_STATE, {
|
||||
filter: { mangaId: { in: mangaIds } },
|
||||
condition: { ...state },
|
||||
order: [{ by: ChapterOrderBy.SourceOrder }],
|
||||
}).response;
|
||||
|
||||
return data?.chapters.nodes ?? [];
|
||||
}
|
||||
|
||||
|
||||
@@ -165,17 +165,27 @@ export const GET_CHAPTERS_HISTORY = gql`
|
||||
|
||||
export const GET_MANGAS_CHAPTER_IDS_WITH_STATE = gql`
|
||||
${CHAPTER_STATE_FIELDS}
|
||||
${PAGE_INFO}
|
||||
|
||||
query GET_MANGAS_CHAPTER_IDS_WITH_STATE(
|
||||
$mangaIds: [Int!]!
|
||||
$isDownloaded: Boolean = null
|
||||
$isRead: Boolean = null
|
||||
$isBookmarked: Boolean = null
|
||||
$after: Cursor
|
||||
$before: Cursor
|
||||
$condition: ChapterConditionInput
|
||||
$filter: ChapterFilterInput
|
||||
$first: Int
|
||||
$last: Int
|
||||
$offset: Int
|
||||
$order: [ChapterOrderInput!]
|
||||
) {
|
||||
chapters(
|
||||
filter: { mangaId: { in: $mangaIds } }
|
||||
condition: { isDownloaded: $isDownloaded, isRead: $isRead, isBookmarked: $isBookmarked }
|
||||
order: [{ by: SOURCE_ORDER }]
|
||||
after: $after
|
||||
before: $before
|
||||
condition: $condition
|
||||
filter: $filter
|
||||
first: $first
|
||||
last: $last
|
||||
offset: $offset
|
||||
order: $order
|
||||
) {
|
||||
nodes {
|
||||
...CHAPTER_STATE_FIELDS
|
||||
@@ -183,6 +193,10 @@ export const GET_MANGAS_CHAPTER_IDS_WITH_STATE = gql`
|
||||
scanlator
|
||||
chapterNumber
|
||||
}
|
||||
pageInfo {
|
||||
...PAGE_INFO
|
||||
}
|
||||
totalCount
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -931,16 +931,21 @@ export type GetChaptersHistoryQuery = {
|
||||
};
|
||||
|
||||
export type GetMangasChapterIdsWithStateQueryVariables = Exact<{
|
||||
mangaIds: Array<number> | number;
|
||||
isDownloaded?: boolean | null | undefined;
|
||||
isRead?: boolean | null | undefined;
|
||||
isBookmarked?: boolean | null | undefined;
|
||||
after?: string | null | undefined;
|
||||
before?: string | null | undefined;
|
||||
condition?: Types.ChapterConditionInput | null | undefined;
|
||||
filter?: Types.ChapterFilterInput | null | undefined;
|
||||
first?: number | null | undefined;
|
||||
last?: number | null | undefined;
|
||||
offset?: number | null | undefined;
|
||||
order?: Array<Types.ChapterOrderInput> | Types.ChapterOrderInput | null | undefined;
|
||||
}>;
|
||||
|
||||
export type GetMangasChapterIdsWithStateQuery = {
|
||||
__typename: 'Query';
|
||||
chapters: {
|
||||
__typename: 'ChapterNodeList';
|
||||
totalCount: number;
|
||||
nodes: Array<{
|
||||
__typename: 'ChapterType';
|
||||
mangaId: number;
|
||||
@@ -951,6 +956,13 @@ export type GetMangasChapterIdsWithStateQuery = {
|
||||
isDownloaded: boolean;
|
||||
isBookmarked: boolean;
|
||||
}>;
|
||||
pageInfo: {
|
||||
__typename: 'PageInfo';
|
||||
endCursor: string | null;
|
||||
hasNextPage: boolean;
|
||||
hasPreviousPage: boolean;
|
||||
startCursor: string | null;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -83,8 +83,6 @@ import type {
|
||||
GetMangaChaptersFetchMutationVariables,
|
||||
GetMangaFetchMutation,
|
||||
GetMangaFetchMutationVariables,
|
||||
GetMangasChapterIdsWithStateQuery,
|
||||
GetMangasChapterIdsWithStateQueryVariables,
|
||||
GetMangasLibraryQuery,
|
||||
GetMangasLibraryQueryVariables,
|
||||
GetMangaToMigrateQuery,
|
||||
@@ -190,7 +188,6 @@ import type {
|
||||
WebuiUpdateSubscription,
|
||||
} from '@/lib/graphql/generated/graphql.ts';
|
||||
import type {
|
||||
ChapterConditionInput,
|
||||
CreateBackupInput,
|
||||
CreateCategoryInput,
|
||||
DeleteCategoryMetasInput,
|
||||
@@ -272,12 +269,7 @@ import {
|
||||
START_DOWNLOADER,
|
||||
STOP_DOWNLOADER,
|
||||
} from '@/lib/graphql/download/DownloaderMutation.ts';
|
||||
import {
|
||||
GET_CHAPTERS_HISTORY,
|
||||
GET_CHAPTERS_MANGA,
|
||||
GET_CHAPTERS_UPDATES,
|
||||
GET_MANGAS_CHAPTER_IDS_WITH_STATE,
|
||||
} from '@/lib/graphql/chapter/ChapterQuery.ts';
|
||||
import { GET_CHAPTERS_HISTORY, GET_CHAPTERS_MANGA, GET_CHAPTERS_UPDATES } from '@/lib/graphql/chapter/ChapterQuery.ts';
|
||||
import {
|
||||
GET_CHAPTER_PAGES_FETCH,
|
||||
GET_MANGA_CHAPTERS_FETCH,
|
||||
@@ -2536,22 +2528,6 @@ export class RequestManager {
|
||||
);
|
||||
}
|
||||
|
||||
public getMangasChapterIdsWithState(
|
||||
mangaIds: number[],
|
||||
states: Pick<ChapterConditionInput, 'isRead' | 'isDownloaded' | 'isBookmarked'>,
|
||||
options?: QueryOptions<GetMangasChapterIdsWithStateQueryVariables, GetMangasChapterIdsWithStateQuery>,
|
||||
): AbortabaleApolloQueryResponse<GetMangasChapterIdsWithStateQuery> {
|
||||
return this.doRequest(
|
||||
GQLMethod.QUERY,
|
||||
GET_MANGAS_CHAPTER_IDS_WITH_STATE,
|
||||
{ mangaIds, ...states } as GetMangasChapterIdsWithStateQueryVariables,
|
||||
{
|
||||
fetchPolicy: 'no-cache',
|
||||
...options,
|
||||
} as QueryOptions<GetMangasChapterIdsWithStateQueryVariables, GetMangasChapterIdsWithStateQuery>,
|
||||
);
|
||||
}
|
||||
|
||||
public getMangaChaptersFetch(
|
||||
mangaId: number | string,
|
||||
options?: MutationOptions<GetMangaChaptersFetchMutation, GetMangaChaptersFetchMutationVariables>,
|
||||
|
||||
Reference in New Issue
Block a user