import { useState } from 'react' import AlertError from 'components/ui/AlertError' import { useWorkflowRunLogsQuery } from 'data/workflow-runs/workflow-run-logs-query' import { useWorkflowRunsQuery } from 'data/workflow-runs/workflow-runs-query' import dayjs from 'dayjs' import { ArrowLeft, ArrowRight } from 'lucide-react' import { Button, cn, Dialog, DialogContent, DialogDescription, DialogHeader, DialogSection, DialogSectionSeparator, DialogTitle, DialogTrigger, } from 'ui' import { GenericSkeletonLoader } from 'ui-patterns' import BranchStatusBadge from './BranchStatusBadge' interface WorkflowLogsProps { projectRef: string } const WorkflowLogs = ({ projectRef }: WorkflowLogsProps) => { const [isOpen, setIsOpen] = useState(false) const { data: workflowRuns, isSuccess: isWorkflowRunsSuccess, isLoading: isWorkflowRunsLoading, isError: isWorkflowRunsError, error: workflowRunsError, } = useWorkflowRunsQuery( { projectRef, }, { enabled: isOpen, } ) const [selectedWorkflowRunId, setSelectedWorkflowRunId] = useState(undefined) const { data: workflowRunLogs, isSuccess: isWorkflowRunLogsSuccess, isLoading: isWorkflowRunLogsLoading, isError: isWorkflowRunLogsError, error: workflowRunLogsError, } = useWorkflowRunLogsQuery( { workflowRunId: selectedWorkflowRunId, }, { enabled: isOpen && selectedWorkflowRunId !== undefined, } ) return ( Workflow Logs Select a workflow run to view logs {selectedWorkflowRunId === undefined ? ( <> {isWorkflowRunsLoading && } {isWorkflowRunsError && } {isWorkflowRunsSuccess && (workflowRuns.length > 0 ? (
    {workflowRuns.map((workflowRun) => (
  • ))}
) : (

No workflow runs found.

))} ) : (
{isWorkflowRunLogsLoading && } {isWorkflowRunLogsError && ( )} {isWorkflowRunLogsSuccess && (
                  {workflowRunLogs}
                
)}
)}
) } export default WorkflowLogs