import React from 'react'; import '@shared/styles/theme.css'; import { Badge } from '@shared/components'; import { useToolData } from '@shared/hooks/useToolData'; import type { WorkflowListData } from '@shared/types'; function formatDate(dateStr?: string): string { if (!dateStr) return ''; try { const d = new Date(dateStr); return d.toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' }); } catch { return dateStr; } } export default function App() { const { data, error, isConnected } = useToolData(); if (error) { return
Error: {error}
; } if (!isConnected) { return
Connecting...
; } if (!data) { return
Waiting for data...
; } if (!data.success && data.error) { return (
Error
{data.error}
); } const workflows = data.data?.workflows ?? []; const returned = data.data?.returned ?? workflows.length; const hasMore = data.data?.hasMore; return (
Showing {returned} workflow{returned !== 1 ? 's' : ''} {hasMore && ' (more available)'}
{/* Header row */}
Name Status Nodes Updated
{workflows.length === 0 && (
No workflows found
)} {workflows.map((wf) => (
{wf.name} {wf.tags && wf.tags.length > 0 && (
{wf.tags.slice(0, 3).map((tag, i) => ( {tag} ))} {wf.tags.length > 3 && ( +{wf.tags.length - 3} )}
)}
{wf.isArchived ? 'Archived' : wf.active ? 'Active' : 'Off'}
{wf.nodeCount ?? '–'} {formatDate(wf.updatedAt)}
))}
); }