chore: update custom-rules & update style & script data

This commit is contained in:
2026-01-21 21:44:02 +01:00
parent f46a5d9652
commit c3ac31917a
11 changed files with 862 additions and 603 deletions
@@ -17,6 +17,7 @@ import "./AdminAlerts.css";
import Sidebar from "../../components/Sidebar";
import { isAdminAuthenticated, deleteAlertAdmin } from "../../api/api_admin";
import { getAllAlerts, getAlertDetails } from "../../api/api_cabine";
import Toast from "../../components/Toast";
interface Alert {
id: number;
@@ -32,6 +33,12 @@ interface AlertStats {
resolved: number;
}
interface ToastState {
show: boolean;
message: string;
type: "success" | "error" | "warning" | "info";
}
function AdminAlerts() {
const navigate = useNavigate();
@@ -54,6 +61,26 @@ function AdminAlerts() {
const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);
const [alertToDelete, setAlertToDelete] = useState<number | null>(null);
// État pour le Toast
const [toast, setToast] = useState<ToastState>({
show: false,
message: "",
type: "success",
});
// Fonction pour afficher un toast
const showToast = (
message: string,
type: "success" | "error" | "warning" | "info" = "success",
) => {
setToast({ show: true, message, type });
};
// Fonction pour fermer le toast
const handleCloseToast = () => {
setToast({ ...toast, show: false });
};
// ============================================
// 🔐 VÉRIFICATION AUTHENTIFICATION
// ============================================
@@ -249,11 +276,14 @@ function AdminAlerts() {
setSelectedAlert(result.alert as Alert);
setShowDetailsModal(true);
} else {
alert("Impossible de récupérer les détails");
showToast(
"Impossible de récupérer les détails de l'alerte",
"error",
);
}
} catch (error) {
console.error("❌ Erreur récupération détails:", error);
alert("Erreur lors de la récupération des détails");
showToast("Erreur lors de la récupération des détails", "error");
}
};
@@ -281,15 +311,21 @@ function AdminAlerts() {
setShowDeleteConfirm(false);
setAlertToDelete(null);
// Message de succès
alert("Alerte supprimée avec succès");
// Afficher le toast de succès
showToast(
`Alerte #${alertToDelete} supprimée avec succès`,
"success",
);
} else {
console.error("❌ [DELETE_ALERT] Erreur:", result.error);
alert(result.error || "Erreur lors de la suppression");
showToast(
result.error || "Erreur lors de la suppression",
"error",
);
}
} catch (error) {
console.error("❌ [DELETE_ALERT] Erreur:", error);
alert("Erreur lors de la suppression de l'alerte");
showToast("Erreur lors de la suppression de l'alerte", "error");
}
};
@@ -673,6 +709,16 @@ function AdminAlerts() {
</div>
</div>
)}
{/* Toast Notifications */}
{toast.show && (
<Toast
message={toast.message}
type={toast.type}
duration={3000}
onClose={handleCloseToast}
/>
)}
</div>
</>
);
@@ -20,11 +20,10 @@ import AdminLayout from "../../components/AdminLayout";
import "./AdminOrders.css";
import {
getAllCommands,
getCommandItems,
getDeliverymanLocationForCommand,
isAdminAuthenticated,
} from "../../api/api_admin";
import { getCommandItems } from "../../api/api_cabine";
import type { DeliverymanLocationResponse } from "../../api/api_admin_types";
// Interface correspondant au backend
@@ -24,13 +24,13 @@ import SidebarCabine from "../../components/SidebarCabine";
import "./CabineOrders.css";
import {
getAllCommands,
getCommandItems,
getDeliverymanLocationForCommand,
} from "../../api/api_admin";
import {
deleteCommand,
isCabineAuthenticated, // ⭐ AJOUT
isCabineAuthenticated,
getCommandItems,
} from "../../api/api_cabine";
import type { DeliverymanLocationResponse } from "../../api/api_admin_types";
File diff suppressed because it is too large Load Diff