diff --git a/src/routes/upload/+page.svelte b/src/routes/upload/+page.svelte index 437de79..a014e6b 100644 --- a/src/routes/upload/+page.svelte +++ b/src/routes/upload/+page.svelte @@ -47,12 +47,20 @@ async function handleSubmit(event: Event) { formData.append('text', textInput.trim()); } + errorMsg = ''; try { const response = await fetch('/api/grade', { method: 'POST', body: formData }); - const result = await response.json(); + let result; + try { + result = await response.json(); + } catch { + errorMsg = 'Received an invalid response from the server.'; + submitting = false; + return; + } if (response.ok && result.success) { // Save to localStorage history try { @@ -73,10 +81,18 @@ async function handleSubmit(event: Event) { taskDescription = ''; return; } else { - errorMsg = result.error || 'An error occurred.'; + if (result && result.error) { + errorMsg = `Sorry, something went wrong: ${result.error}`; + } else if (response.status === 413) { + errorMsg = 'The uploaded file is too large. Please upload a smaller file.'; + } else if (response.status >= 500) { + errorMsg = 'The server encountered an error. Please try again later.'; + } else { + errorMsg = 'An unknown error occurred. Please check your input and try again.'; + } } } catch (err) { - errorMsg = 'Network or server error.'; + errorMsg = 'Network or server error. Please check your connection and try again.'; } finally { submitting = false; } @@ -87,11 +103,15 @@ async function handleSubmit(event: Event) {

Upload Student Submissions

Upload student assignments for instant AI-powered assessment and feedback.

-
-

Upload Student Submission

+ {#if errorMsg} +
+ Error: {errorMsg} +
+ {/if} +
- - + +