import { useState } from "react";
import { Link, Navigate, useNavigate, useSearchParams } from "react-router-dom";
import { LuActivity, LuCopy, LuPencil, LuPlay, LuPlus, LuRefreshCw, LuTrash2, LuTriangleAlert } from "react-icons/lu";
import { errorMessage } from "../api/client.js";
import {
useDeleteWorkflow,
useReregisterWorkflows,
useRunWorkflow,
useSetWorkflowEnabled,
useWorkflows,
} from "../api/hooks.js";
import { DuplicateWorkflowDialog } from "../components/DuplicateWorkflowDialog.jsx";
import { WorkflowFileIcon } from "../components/WorkflowFileIcon.jsx";
import { formatTime, WorkflowStatusBadge } from "../lib/format.jsx";
export function WorkflowsPage() {
const navigate = useNavigate();
const [params] = useSearchParams();
const editParam = params.get("edit");
const { data: workflows = [], isLoading } = useWorkflows();
const [confirmDelete, setConfirmDelete] = useState(null);
const [duplicateSource, setDuplicateSource] = useState(null);
const [runError, setRunError] = useState(null);
const del = useDeleteWorkflow();
const run = useRunWorkflow();
const setEnabled = useSetWorkflowEnabled();
const reregister = useReregisterWorkflows();
if (editParam) {
const slash = editParam.indexOf("/");
if (slash !== -1) {
const owner = editParam.slice(0, slash);
const file = editParam.slice(slash + 1);
return (
{errorMessage(reregister.error)}
) : null} {runError ?{runError}
: null} {setEnabled.isError ? ({errorMessage(setEnabled.error)}
) : null} {isLoading ? ( ) : (| Name | Owner | Status | Triggers | Last run | Runs | |
|---|---|---|---|---|---|---|
|
|
{w.owner} |
|
|
{formatTime(w.lastInvokedAt)} | {w.invocationCount} |
|