From 42c297d9d5bc646a009cc572dbd9db9dbf53d92d Mon Sep 17 00:00:00 2001 From: EETagent Date: Mon, 5 Dec 2022 23:56:59 +0100 Subject: [PATCH] feat: file upload error --- .../dashboard/CoverLetterUploadCard.svelte | 11 ++++++++++- .../components/dashboard/DashboardUploadCard.svelte | 12 +++++++++--- .../dashboard/PortfolioLetterUploadCard.svelte | 11 ++++++++++- .../dashboard/PortfolioZipUploadCard.svelte | 11 ++++++++++- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/frontend/src/lib/components/dashboard/CoverLetterUploadCard.svelte b/frontend/src/lib/components/dashboard/CoverLetterUploadCard.svelte index 572d90d..8e08514 100644 --- a/frontend/src/lib/components/dashboard/CoverLetterUploadCard.svelte +++ b/frontend/src/lib/components/dashboard/CoverLetterUploadCard.svelte @@ -2,16 +2,25 @@ import { fetchSubmProgress } from '$lib/stores/portfolio'; import { apiUploadCoverLetter } from '$lib/@api/candidate'; import DashboardUploadCard from './DashboardUploadCard.svelte'; + import type { ApiError } from '$lib/@api'; + + let error: string | null = null; const onFileDrop = async (detail: any) => { const file = detail.file; const callback = detail.callback; - await apiUploadCoverLetter(file, callback); + try { + await apiUploadCoverLetter(file, callback); + error = null; + } catch (e) { + error = (e as ApiError).msg; + } await fetchSubmProgress(); }; onFileDrop(e.detail)} title="Motivační dopis" filetype="PDF" diff --git a/frontend/src/lib/components/dashboard/DashboardUploadCard.svelte b/frontend/src/lib/components/dashboard/DashboardUploadCard.svelte index b525e8d..07121b6 100644 --- a/frontend/src/lib/components/dashboard/DashboardUploadCard.svelte +++ b/frontend/src/lib/components/dashboard/DashboardUploadCard.svelte @@ -12,6 +12,8 @@ const dispatch = createEventDispatcher(); + export let error: string | null = null; + export let title: string; export let filetype: 'PDF' | 'ZIP'; export let filesize: number; @@ -105,7 +107,7 @@ - {#if fileDropped} + {#if fileDropped && error === null}
- Sem přetáhněte, - nebo nahrajte {placeholder} + {#if error} + {error} + {:else} + Sem přetáhněte, + nebo nahrajte {placeholder} + {/if}
{/if} diff --git a/frontend/src/lib/components/dashboard/PortfolioLetterUploadCard.svelte b/frontend/src/lib/components/dashboard/PortfolioLetterUploadCard.svelte index 5557bf9..72a1840 100644 --- a/frontend/src/lib/components/dashboard/PortfolioLetterUploadCard.svelte +++ b/frontend/src/lib/components/dashboard/PortfolioLetterUploadCard.svelte @@ -1,17 +1,26 @@ onFileDrop(e.detail)} title="Portfolio" filetype="PDF" diff --git a/frontend/src/lib/components/dashboard/PortfolioZipUploadCard.svelte b/frontend/src/lib/components/dashboard/PortfolioZipUploadCard.svelte index cf60d42..5a0b2cc 100644 --- a/frontend/src/lib/components/dashboard/PortfolioZipUploadCard.svelte +++ b/frontend/src/lib/components/dashboard/PortfolioZipUploadCard.svelte @@ -2,16 +2,25 @@ import { fetchSubmProgress } from '$lib/stores/portfolio'; import { apiUploadPortfolioZip } from '$lib/@api/candidate'; import DashboardUploadCard from './DashboardUploadCard.svelte'; + import type { ApiError } from '$lib/@api'; + + let error: string | null = null; const onFileDrop = async (detail: any) => { const file = detail.file; const callback = detail.callback; - await apiUploadPortfolioZip(file, callback); + try { + await apiUploadPortfolioZip(file, callback); + error = null; + } catch (e) { + error = (e as ApiError).msg; + } await fetchSubmProgress(); }; onFileDrop(e.detail)} title="Další data" filetype="ZIP"