Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Feature/request manager make requests abortable #316

Merged
merged 2 commits into from
May 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/components/manga/ChapterCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ const ChapterCard: React.FC<IProps> = (props: IProps) => {
[key]: value,
lastPageRead: key === 'read' ? 0 : undefined,
})
.then(() => triggerChaptersUpdate());
.response.then(() => triggerChaptersUpdate());
};

const downloadChapter = () => {
Expand All @@ -82,7 +82,7 @@ const ChapterCard: React.FC<IProps> = (props: IProps) => {
const deleteChapter = () => {
requestManager
.removeChapterFromDownloadQueue(chapter.mangaId, chapter.index)
.then(() => triggerChaptersUpdate());
.response.then(() => triggerChaptersUpdate());
handleClose();
};

Expand Down
4 changes: 2 additions & 2 deletions src/components/manga/ChapterList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ const ChapterList: React.FC<IProps> = ({ mangaId }) => {
let actionPromise: Promise<any>;

if (action === 'download') {
actionPromise = requestManager.addChaptersToDownloadQueue(chapterIds);
actionPromise = requestManager.addChaptersToDownloadQueue(chapterIds).response;
} else {
const change: BatchChaptersChange = {};

Expand All @@ -165,7 +165,7 @@ const ChapterList: React.FC<IProps> = ({ mangaId }) => {
change.lastPageRead = 0;
}

actionPromise = requestManager.updateChapters(chapterIds, change);
actionPromise = requestManager.updateChapters(chapterIds, change).response;
}

actionPromise
Expand Down
4 changes: 2 additions & 2 deletions src/components/manga/MangaDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,12 @@ const MangaDetails: React.FC<IProps> = ({ manga }) => {

const addToLibrary = () => {
mutate(`/api/v1/manga/${manga.id}`, { ...manga, inLibrary: true }, { revalidate: false });
requestManager.addMangaToLibrary(manga.id).then(() => mutate(`/api/v1/manga/${manga.id}`));
requestManager.addMangaToLibrary(manga.id).response.then(() => mutate(`/api/v1/manga/${manga.id}`));
};

const removeFromLibrary = () => {
mutate(`/api/v1/manga/${manga.id}`, { ...manga, inLibrary: false }, { revalidate: false });
requestManager.removeMangaFromLibrary(manga.id).then(() => mutate(`/api/v1/manga/${manga.id}`));
requestManager.removeMangaFromLibrary(manga.id).response.then(() => mutate(`/api/v1/manga/${manga.id}`));
};

return (
Expand Down
2 changes: 1 addition & 1 deletion src/components/navbar/action/CategorySelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export default function CategorySelect(props: IProps) {
(checked
? requestManager.addMangaToCategory(mangaId, categoryId)
: requestManager.removeMangaFromCategory(mangaId, categoryId)
).then(() => mutate());
).response.then(() => mutate());
};

return (
Expand Down
180 changes: 107 additions & 73 deletions src/lib/RequestManager.ts

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/screens/DownloadQueue.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ const DownloadQueue: React.FC = () => {
return;
}

requestManager.startDownloads().catch(() => {});
requestManager.startDownloads().response.catch(() => {});
};

return (
Expand Down
2 changes: 1 addition & 1 deletion src/screens/Extensions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ export default function MangaExtensions() {
makeToast(t('extension.label.installing_file'), 'info');
requestManager
.installExtension(file)
.then(() => {
.response.then(() => {
makeToast(t('extension.label.installed_successfully'), 'success');
mutate();
})
Expand Down
4 changes: 3 additions & 1 deletion src/screens/SourceConfigure.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@ export default function SourceConfigure() {
};

const updateValue = (position: number) => (value: any) => {
requestManager.setSourcePreferences(sourceId, position, convertToString(position, value)).then(() => mutate());
requestManager
.setSourcePreferences(sourceId, position, convertToString(position, value))
.response.then(() => mutate());
};

return (
Expand Down
4 changes: 2 additions & 2 deletions src/screens/SourceMangas.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ export default function SourceMangas({ popular }: { popular: boolean }) {
};
}),
)
.then(() => {
.response.then(() => {
setTriggerUpdate(0);
makeFilters();
});
Expand All @@ -128,7 +128,7 @@ export default function SourceMangas({ popular }: { popular: boolean }) {
setNoreset(undefined);
setReset(1);
} else if (Noreset === undefined) {
requestManager.resetSourceFilters(sourceId).then(() => {
requestManager.resetSourceFilters(sourceId).response.then(() => {
makeFilters();
setSearch(false);
if (reset === 1) {
Expand Down
2 changes: 1 addition & 1 deletion src/screens/settings/Backup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export default function Backup() {
makeToast(t('settings.backup.label.restoring_backup'), 'info');
requestManager
.restoreBackupFile(file)
.then(() => makeToast(t('settings.backup.label.restored_backup'), 'success'))
.response.then(() => makeToast(t('settings.backup.label.restored_backup'), 'success'))
.catch(() => makeToast(t('settings.backup.label.backup_restore_failed'), 'error'));
} else if (file.name.toLowerCase().endsWith('json')) {
makeToast(t('settings.backup.label.legacy_backup_unsupported'), 'error');
Expand Down
8 changes: 4 additions & 4 deletions src/screens/settings/Categories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ export default function Categories() {
newData.splice(to, 0, removed);
mutate(newData, { revalidate: false });

requestManager.reorderCategory(from + 1, to + 1).finally(() => mutate());
requestManager.reorderCategory(from + 1, to + 1).response.finally(() => mutate());
};

const onDragEnd = (result: DropResult) => {
Expand Down Expand Up @@ -117,18 +117,18 @@ export default function Categories() {
setDialogOpen(false);

if (categoryToEdit === -1) {
requestManager.createCategory(dialogName).finally(() => mutate());
requestManager.createCategory(dialogName).response.finally(() => mutate());
} else {
const category = categories[categoryToEdit];
requestManager
.updateCategory(category.id, { name: dialogName, default: dialogDefault })
.finally(() => mutate());
.response.finally(() => mutate());
}
};

const deleteCategory = (index: number) => {
const category = categories[index];
requestManager.deleteCategory(category.id).finally(() => mutate());
requestManager.deleteCategory(category.id).response.finally(() => mutate());
};

return (
Expand Down