From ed647c88915752296f35111102ea9c8c8a0f494f Mon Sep 17 00:00:00 2001 From: Charles Mendiburu Date: Sun, 13 Apr 2025 12:16:36 +0200 Subject: [PATCH] Ajout message alert valide --- Front-end/src/components/Alert.jsx | 39 +++++++++++++++++++ .../src/pages/Gestion/ObjectManagement.jsx | 8 +++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 Front-end/src/components/Alert.jsx diff --git a/Front-end/src/components/Alert.jsx b/Front-end/src/components/Alert.jsx new file mode 100644 index 0000000..37aa2f7 --- /dev/null +++ b/Front-end/src/components/Alert.jsx @@ -0,0 +1,39 @@ +import React, { useState, useEffect } from "react"; +import { Check, X } from "lucide-react"; +import { useAuth } from "../AuthContext"; + +function Alert({ affAlert, setAffAlert, message }) { + const { user } = useAuth(); + + // Gère la disparition de l'alerte après 3 secondes + useEffect(() => { + if (affAlert) { + const timer = setTimeout(() => { + setAffAlert(false); // Cache l'alerte après 3 secondes + }, 3000); + return () => clearTimeout(timer); // Nettoie le timer au besoin + } + }, [affAlert, setAffAlert]); + + return ( + affAlert && user?.role !== "user" && ( +
+ + + + + +

+ {message} +

+
+ ) + ); +} + +export default Alert; diff --git a/Front-end/src/pages/Gestion/ObjectManagement.jsx b/Front-end/src/pages/Gestion/ObjectManagement.jsx index de0d447..9825770 100644 --- a/Front-end/src/pages/Gestion/ObjectManagement.jsx +++ b/Front-end/src/pages/Gestion/ObjectManagement.jsx @@ -4,6 +4,7 @@ import { useEffect, useState } from "react"; import axios from "axios"; import { API_BASE_URL } from "../../config"; import { useAuth } from "../../AuthContext"; +import Alert from "../../components/Alert"; function ObjectManagement() { const {user} = useAuth(); @@ -11,6 +12,8 @@ function ObjectManagement() { const [activeFilter, setActiveFilter] = useState(""); const [objects, setObjects] = useState([]); const [nbAffObject, setnbAffObject] = useState(6); + const [affAlert, setAffAlert] = useState(false); + const [messageAlert, setMessageAlert] = useState(""); const filteredDATA = objects.filter((node) => { const matchesSearchQuery = @@ -57,7 +60,8 @@ function ObjectManagement() { ); console.log("Réponse du serveur:", response.data); - alert("Demande de suppression envoyée à l'administrateur."); + setMessageAlert("Demande de suppression envoyée à l'administrateur."); + setAffAlert(true); } catch (error) { console.error("Erreur lors de la requête :", error.response?.data || error.message); alert("Erreur lors de la demande."); @@ -71,6 +75,8 @@ function ObjectManagement() { return (
+ +

{(user?.role!=="user")?("Gestion"):("Visualisation")} des Objets connectés.