Fix error handling when adding download to queue

This commit is contained in:
n8detar 2022-04-21 08:56:48 -07:00
parent eccf27a434
commit b300a74669
2 changed files with 18 additions and 17 deletions

View File

@ -12,7 +12,6 @@ export const getDownloads = async (token: string, filter: boolean): Promise<Down
mode: "no-cors",
},
});
console.log(response.ok);
if (response.ok) {
return response.json();
} else {
@ -45,11 +44,14 @@ export const sendDownloads = async (token: string, input: string): Promise<Downl
},
method: "POST"
});
if (!response.ok) {
// throw new Error("Error adding content to the download queue.");
// return response.json();
}
if (response.ok) {
return response.json();
} else if (response.status == 400) {
throw new Error("Failed to extract links. Please input IDs or URLs for videos, channels, or playlists.");
} else {
throw new Error("Failed to connect to the API.");
}
};
export const sendDeleteAllQueuedIgnored = async (token: string, filter: string): Promise<Download> => {

View File

@ -21,9 +21,7 @@ const TA_BASE_URL = getTAUrl();
type ViewStyle = "grid" | "list";
type IgnoredStatus = boolean;
type FormHidden = boolean;
type ErrorMessage = boolean;
type ErrorMessage = string;
export const getServerSideProps: GetServerSideProps = async (context) => {
const queryClient = new QueryClient();
@ -72,7 +70,7 @@ const Download: NextPage = () => {
const [formHidden, setFormHidden] = useState<FormHidden>(true);
const [viewStyle, setViewStyle] = useState<ViewStyle>(downloads?.config?.default_view?.downloads);
const [errorMessage, setErrorMessage] = useState<ErrorMessage>(false);
const [errorMessage, setErrorMessage] = useState<ErrorMessage>(null);
const handleSetViewstyle = (selectedViewStyle: ViewStyle) => {
setViewStyle(selectedViewStyle);
@ -90,13 +88,14 @@ const Download: NextPage = () => {
const handleSetErrorMessage = (selectedErrorMessage: ErrorMessage) => {
setErrorMessage(selectedErrorMessage);
};
const addToDownloadQueue = event => {
event.preventDefault();
sendDownloads(session.ta_token.token, event.target.vid_url.value).then((response) => !response.message ? handleSetErrorMessage(false) : handleSetErrorMessage(true));
errorMessage ? handleSetFormHidden(false) : handleSetFormHidden(true);
sendDownloads(session.ta_token.token, event.target.vid_url.value).then(() => {
handleSetErrorMessage(null);
handleSetFormHidden(true);
})
.catch(error => handleSetErrorMessage(error.message));
}
return (
<>
<CustomHead title="Downloads" />
@ -109,14 +108,14 @@ const Download: NextPage = () => {
<div id="notifications">
{error &&
<div className="error notification">
<h3>{downloads?.message}</h3>
<p></p>
<h3>API Connection Error</h3>
<p>{error}</p>
</div>
}
{errorMessage &&
<div className="error notification">
<h3>Failed to extract links.</h3>
<p>Not a video, channel, playlist ID or URL</p>
<h3>Failed to add downloads to the queue.</h3>
<p>{errorMessage}</p>
</div>
}
{