zero-knowledge file sharing
13
fork

Configure Feed

Select the types of activity you want to include in your feed.

handle paste upload

Juliet f1c165bc de748345

+13
+13
web/src/pages/Upload.tsx
··· 254 254 if (e.dataTransfer?.files[0]) setFile(e.dataTransfer.files[0]); 255 255 }; 256 256 257 + const handlePaste = (e: ClipboardEvent) => { 258 + if (view() !== "empty") return; 259 + const target = e.target as HTMLElement | null; 260 + if (target && (target.tagName === "INPUT" || target.tagName === "TEXTAREA")) return; 261 + const f = e.clipboardData?.files[0]; 262 + if (f) { 263 + e.preventDefault(); 264 + setFile(f); 265 + } 266 + }; 267 + 257 268 onMount(async () => { 258 269 worker = new Worker(new URL("../lib/crypto.worker.ts", import.meta.url), { 259 270 type: "module", ··· 261 272 document.addEventListener("dragover", handleDragOver); 262 273 document.addEventListener("dragleave", handleDragLeave); 263 274 document.addEventListener("drop", handleDrop); 275 + document.addEventListener("paste", handlePaste); 264 276 265 277 try { 266 278 const res = await fetch("/api/info"); ··· 280 292 document.removeEventListener("dragover", handleDragOver); 281 293 document.removeEventListener("dragleave", handleDragLeave); 282 294 document.removeEventListener("drop", handleDrop); 295 + document.removeEventListener("paste", handlePaste); 283 296 worker?.terminate(); 284 297 cancelRecording(); 285 298 });