From bbf20d31626d64fdb5fd7bfb66230a365c4f5f51 Mon Sep 17 00:00:00 2001 From: zenchantlive Date: Wed, 11 Feb 2026 17:56:05 -0800 Subject: [PATCH] Remove unused duplicate kanban board client component --- src/components/kanban/kanban-board-client.tsx | 178 ------------------ 1 file changed, 178 deletions(-) delete mode 100644 src/components/kanban/kanban-board-client.tsx diff --git a/src/components/kanban/kanban-board-client.tsx b/src/components/kanban/kanban-board-client.tsx deleted file mode 100644 index 3765d92..0000000 --- a/src/components/kanban/kanban-board-client.tsx +++ /dev/null @@ -1,178 +0,0 @@ -'use client'; - -import { useMemo, useState } from 'react'; - -import { - KANBAN_STATUSES, - buildKanbanColumns, - buildKanbanStats, - filterKanbanIssues, - type KanbanStatus, -} from '../../lib/kanban'; -import type { BeadIssue } from '../../lib/types'; - -const STATUS_LABELS: Record = { - open: 'Open', - in_progress: 'In Progress', - blocked: 'Blocked', - deferred: 'Deferred', - closed: 'Done', -}; - -const STATUS_COLORS: Record = { - open: '#3b82f6', - in_progress: '#f59e0b', - blocked: '#ef4444', - deferred: '#6b7280', - closed: '#22c55e', -}; - -function formatDate(value: string | null): string { - if (!value) { - return 'N/A'; - } - - const date = new Date(value); - if (Number.isNaN(date.valueOf())) { - return value; - } - - return date.toLocaleString(); -} - -export function KanbanBoardClient({ issues, sourcePath }: { issues: BeadIssue[]; sourcePath: string }) { - const [query, setQuery] = useState(''); - const [type, setType] = useState('all'); - const [priority, setPriority] = useState('all'); - const [showClosed, setShowClosed] = useState(true); - const [selectedIssue, setSelectedIssue] = useState(null); - - const filteredIssues = useMemo( - () => filterKanbanIssues(issues, { query, type, priority, showClosed }), - [issues, query, type, priority, showClosed], - ); - - const columns = useMemo(() => buildKanbanColumns(filteredIssues), [filteredIssues]); - const stats = useMemo(() => buildKanbanStats(filteredIssues), [filteredIssues]); - const visibleStatuses = showClosed ? KANBAN_STATUSES : KANBAN_STATUSES.filter((status) => status !== 'closed'); - const issueTypes = useMemo( - () => ['all', ...Array.from(new Set(issues.map((issue) => issue.issue_type))).sort()], - [issues], - ); - - return ( -
-
-

BeadBoard

-
Source: {sourcePath}
- -
- setQuery(e.target.value)} placeholder="Search beads" style={{ padding: '6px 8px' }} /> - - - -
- -
- Total {stats.total} - Open {stats.open} - Active {stats.active} - Blocked {stats.blocked} - Done {stats.done} - P0 {stats.p0} -
-
- -
- {visibleStatuses.map((status) => ( -
-
- {STATUS_LABELS[status]} - {columns[status].length} -
- -
- {columns[status].map((issue) => ( - - ))} -
-
- ))} -
- - {selectedIssue ? ( - <> -
setSelectedIssue(null)} /> - - - ) : null} -
- ); -}