From ae9c454f669e79f4bc8401db4150b8b703775126 Mon Sep 17 00:00:00 2001 From: amel Date: Fri, 13 Sep 2024 11:59:20 +0800 Subject: [PATCH] upd: dokument Deskripsi: - unduh file No Issues --- .../document/ui/navbar_document_division.tsx | 41 +++++++++++++++++-- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/src/module/document/ui/navbar_document_division.tsx b/src/module/document/ui/navbar_document_division.tsx index c483594..bc07c04 100644 --- a/src/module/document/ui/navbar_document_division.tsx +++ b/src/module/document/ui/navbar_document_division.tsx @@ -38,6 +38,7 @@ export default function NavbarDocumentDivision() { const [share, setShare] = useState(false) const [more, setMore] = useState(false) const [shareSelected, setShareSelected] = useState(false) + const [copyAllowed, setCopyAllowed] = useState(true) const searchParams = useSearchParams() const path = searchParams.get('path') const [dataDocument, setDataDocument] = useState([]) @@ -89,6 +90,13 @@ export default function NavbarDocumentDivision() { } else { setShareSelected(false) } + + const cek = selectedFiles.some((i: any) => i?.category == 'FOLDER') + if (cek || shareSelected || selectedFiles.length > 1) { + setCopyAllowed(false) + } else { + setCopyAllowed(true) + } } const handleSelectAll = () => { @@ -218,6 +226,28 @@ export default function NavbarDocumentDivision() { setRename(true) } + const onDownload = async () => { + try { + const fileUrl = `https://wibu-storage.wibudev.com/api/files/${selectedFiles[0].idStorage}`; + const response = await fetch(fileUrl); + const blob = await response.blob(); + + // Create a link element, use Blob URL + const link = document.createElement("a"); + const url = window.URL.createObjectURL(blob); + link.href = url; + link.download = `${selectedFiles[0].name}.${selectedFiles[0].extension}`; // Nama file yang akan diunduh + document.body.appendChild(link); + link.click(); + + // Cleanup + window.URL.revokeObjectURL(url); + document.body.removeChild(link); + } catch (error) { + alert(error); + } + }; + return ( {(selectedFiles.length > 0 || dariSelectAll) && ( @@ -247,9 +277,14 @@ export default function NavbarDocumentDivision() { }}> - - 0) ? 'white' : '#656060'} /> - 0) ? 'white' : '#656060'}>Unduh + { + if ((selectedFiles.length > 0 && copyAllowed)) { + onDownload() + } + }}> + 0 && copyAllowed) ? 'white' : '#656060'} /> + 0 && copyAllowed) ? 'white' : '#656060'}>Unduh