From a35b07e45ef271cbd7737e03488d602af6a08a70 Mon Sep 17 00:00:00 2001 From: Thomas Richter Date: Thu, 29 Jan 2026 15:27:48 +0100 Subject: [PATCH] feat(03-02): create ImageUpload component with drag-drop - Add drag-and-drop zone for image uploads - Show optimistic preview during upload - Support keyboard navigation (Enter/Space to trigger) - Handle upload via fetch to ?/uploadImage action - Clean up object URLs after upload completes - Provide callbacks for upload lifecycle events --- src/lib/components/ImageUpload.svelte | 164 ++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 src/lib/components/ImageUpload.svelte diff --git a/src/lib/components/ImageUpload.svelte b/src/lib/components/ImageUpload.svelte new file mode 100644 index 0000000..a913ea6 --- /dev/null +++ b/src/lib/components/ImageUpload.svelte @@ -0,0 +1,164 @@ + + +
fileInput?.click()} + onkeydown={handleKeydown} +> + + + {#if isUploading} +
+ {#if previewUrl} + Preview + {/if} +
+ + + + + Uploading... +
+
+ {:else} +
+ + + + Drop image or click to upload +
+ {/if} +