From e6c0e16e8484c640e903dfe46ee5fbd6e4a574a8 Mon Sep 17 00:00:00 2001 From: RaviAnand Mohabir Date: Tue, 8 Apr 2025 20:17:28 +0200 Subject: [PATCH] feat: :sparkles: implement manually add file, use every() to check if pdfs can be dropped, implement file delete, remove nested scrollarea for document preview --- src/Organizrr.tsx | 85 +++++++++++++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 32 deletions(-) diff --git a/src/Organizrr.tsx b/src/Organizrr.tsx index 01f6f69..488fde8 100644 --- a/src/Organizrr.tsx +++ b/src/Organizrr.tsx @@ -23,6 +23,7 @@ import { IconDownload, IconEye, IconEyeOff, + IconFilePlus, IconFiles, IconLayoutSidebarLeftCollapse, IconLayoutSidebarLeftExpand, @@ -314,26 +315,52 @@ function Organizrr() { Files + { + const id = Math.random().toString(36).replace("0.", "file_"); + form.insertListItem("files", { id, documents: [] }); + setActiveFile(form.getValues().files.length - 1); + }} + > + + {form.values.files.map((f, idx) => ( - + + + { + if (activeFile === idx) { + setActiveFile(null); + } + form.removeListItem("files", idx); + }} + variant="subtle" + c="red" + > + + + {activeFile != idx && form.errors && Object.entries(form.errors) @@ -480,14 +507,12 @@ function Organizrr() { ) )} - {form.values.documents - .find( - (doc) => - doc.id === - form.values.files[activeFile]?.documents[0].id - ) - ?.file.name.toLowerCase() - .endsWith(".pdf") && ( + {form.values.files[activeFile].documents.every((doc) => + form.values.documents + .find((d) => d.id === doc.id) + ?.file.name.toLowerCase() + .endsWith(".pdf") + ) && ( {activeDocument && activeDocument.file.name.toLowerCase().endsWith(".pdf") && ( - <> - - - - - - + + + )}