From 48ba08e06876568b6ae8605c99ac1f771f6cbf16 Mon Sep 17 00:00:00 2001 From: LASER-Yi Date: Sat, 22 May 2021 15:19:17 +0800 Subject: [PATCH] Improve series subtitles upload experience --- .../components/modals/SeriesUploadModal.tsx | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/modals/SeriesUploadModal.tsx b/frontend/src/components/modals/SeriesUploadModal.tsx index 7c479cdc7..69501360b 100644 --- a/frontend/src/components/modals/SeriesUploadModal.tsx +++ b/frontend/src/components/modals/SeriesUploadModal.tsx @@ -205,19 +205,34 @@ const SeriesUploadModal: FunctionComponent = ({ setProcessState(uploadStates); + let exception = false; + for (const info of pending) { if (info.instance) { const { sonarrEpisodeId: episodeid } = info.instance; - await EpisodesApi.uploadSubtitles(seriesid, episodeid, info.form); - uploadStates = { - ...uploadStates, - [info.form.file.name]: { state: State.Valid, infos: [] }, - }; + try { + await EpisodesApi.uploadSubtitles(seriesid, episodeid, info.form); + + uploadStates = { + ...uploadStates, + [info.form.file.name]: { state: State.Valid, infos: [] }, + }; + } catch (error) { + uploadStates = { + ...uploadStates, + [info.form.file.name]: { state: State.Error, infos: [] }, + }; + exception = true; + } setProcessState(uploadStates); } } + + if (exception) { + throw new Error("Error when uploading subtitles"); + } }, [series, pending]); const canUpload = useMemo( @@ -289,6 +304,7 @@ const SeriesUploadModal: FunctionComponent = ({ accessor: "instance", className: "vw-1", Cell: ({ value, loose, row, externalUpdate }) => { + const uploading = loose![0] as boolean; const availables = loose![2] as Item.Episode[]; const options = availables.map>( @@ -311,6 +327,7 @@ const SeriesUploadModal: FunctionComponent = ({ return ( = ({ Clean