From f5195f5c0a096d51d74acecfc89293f34ebaf4d6 Mon Sep 17 00:00:00 2001 From: Vins Date: Fri, 16 Feb 2024 16:00:55 +0100 Subject: [PATCH] Fixes --- .../DesignSystem/DepositRib/index.tsx | 9 ++- src/front/Components/Layouts/Rib/index.tsx | 79 +++++++++++++------ 2 files changed, 58 insertions(+), 30 deletions(-) diff --git a/src/front/Components/DesignSystem/DepositRib/index.tsx b/src/front/Components/DesignSystem/DepositRib/index.tsx index 506bec67..4c27cb15 100644 --- a/src/front/Components/DesignSystem/DepositRib/index.tsx +++ b/src/front/Components/DesignSystem/DepositRib/index.tsx @@ -59,12 +59,13 @@ export default class DepositRib extends React.Component { }; handleFile = (file: File) => { + if (!file) return; if (file.type === "application/pdf" || file.type === "image/jpeg" || file.type === "image/png") { - this.setState((prevState) => ({ - documents: [...prevState.documents, file], + this.setState({ + documents: [file], errorMessage: "", - })); - this.props.onChange([...this.state.documents, file]); + }); + this.props.onChange([file]); } else { this.setState({ errorMessage: "Only PDF, JPEG, and PNG files are allowed." }); } diff --git a/src/front/Components/Layouts/Rib/index.tsx b/src/front/Components/Layouts/Rib/index.tsx index f5b18eed..bd5a11f7 100644 --- a/src/front/Components/Layouts/Rib/index.tsx +++ b/src/front/Components/Layouts/Rib/index.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useCallback, useEffect, useState } from "react"; import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography"; import classes from "./classes.module.scss"; import DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate"; @@ -17,29 +17,32 @@ export default function Rib() { const [fileName, setFileName] = useState(""); const [key, setKey] = useState(""); const [isRibModalOpen, setIsRibModalOpen] = useState(false); + const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); + + //Put fetch data in a useCallback + + const fetchData = useCallback(async () => { + console.log("fetchData", officeUid); - const fetchData = async () => { if (!officeUid) return; - const blob = await Bucket.getInstance().getRibStream(officeUid as string); + try { + const blob = await Bucket.getInstance().getRibStream(officeUid as string); - if (!blob) { + const ribUrl = URL.createObjectURL(blob); + + setFileUrl(ribUrl); + setKey(key); + setFileName(key); + } catch (error) { setFileUrl(""); setFileName(""); setKey(""); } - const ribUrl = URL.createObjectURL(blob); + }, [officeUid]); - setFileUrl(ribUrl); - setKey(key); - setFileName(key); - }; - - async function deleteFile() { - if (!officeUid) return; - await Bucket.getInstance().delete(officeUid as string); - setDocumentList([]); + useEffect(() => { fetchData(); - } + }, [officeUid]); function downloadFile() { if (!fileUrl) return; @@ -59,18 +62,34 @@ export default function Rib() { await Bucket.getInstance().post(formData); - setDocumentList([]); - setIsRibModalOpen(false); + onCloseRibModal(); fetchData(); } + function openRibModal(): void { + setIsRibModalOpen(true); + } + function onCloseRibModal(): void { setDocumentList([]); setIsRibModalOpen(false); } - function openRibModal(): void { - setIsRibModalOpen(true); + async function onDeleteModalAccepted() { + if (!officeUid) return; + const office = await Bucket.getInstance().delete(officeUid as string); + console.log(office); + + onCloseDeleteModal(); + fetchData(); + } + + function openDeleteModal(): void { + setIsDeleteModalOpen(true); + } + + function onCloseDeleteModal(): void { + setIsDeleteModalOpen(false); } const onDocumentChange = (documentList: File[]) => { @@ -103,7 +122,7 @@ export default function Rib() {
{fileUrl && }
- - - -
*/} + + + Supprimer le RIB + + + Voulez-vous vraiment supprimer le RIB de votre office ? + +
);