"use client"; import React, { useState, useEffect } from "react"; import { X, RefreshCw } from "lucide-react"; import { Button } from "./ui/Button"; const LogsModal = ({ isOpen, onClose, workflowId }) => { const [logs, setLogs] = useState([]); const [loading, setLoading] = useState(false); const fetchLogs = async () => { setLoading(true); try { let url = `${window.wpbotAutomator.apiUrl}/logs`; if (workflowId) { url += `?workflow_id=${workflowId}`; } const response = await fetch(url, { headers: { "X-WP-Nonce": window.wpbotAutomator.nonce, }, }); const data = await response.json(); setLogs(data.logs || (Array.isArray(data) ? data : [])); } catch (error) { console.error("Error fetching logs:", error); } finally { setLoading(false); } }; useEffect(() => { if (isOpen) { fetchLogs(); } }, [isOpen]); if (!isOpen) return null; return (

Execution Logs

{logs.length === 0 ? ( ) : ( logs.map((log) => ( )) )}
Date Workflow Type Status Message
{loading ? "Loading logs..." : "No logs found."}
{log.created_at} {log.workflow_name || `Workflow #${log.workflow_id}`} {log.trigger_type} {log.status} {log.error_message || log.log_data || "-"}
); }; export default LogsModal;