Files
OpenOPC/opc/plugins/office_ui/frontend_src/kanban/BoardSelector.tsx
T
小东 cb6b8ed6e1 feat: harden company resume, external sessions, and Office UI i18n
Improve suspend/resume identity continuity and external broker session handling, add Office UI internationalization with rebuilt assets, and expand company org configs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 09:20:40 +08:00

30 lines
897 B
TypeScript

import type { KanbanBoard } from '../types/kanban'
import { useI18n } from '../i18n'
interface BoardSelectorProps {
boards: KanbanBoard[]
activeBoardId: string | null
onSelect: (id: string) => void
}
export function BoardSelector({ boards, activeBoardId, onSelect }: BoardSelectorProps) {
const { translateMaybe } = useI18n()
return (
<div className="board-selector">
<div className="board-tabs">
{boards.map(b => (
<button
key={b.id}
className={`board-tab${b.id === activeBoardId ? ' active' : ''}`}
style={{ '--board-color': b.color } as React.CSSProperties}
onClick={() => onSelect(b.id)}
>
<span className="board-tab-dot" style={{ background: b.color }} />
{translateMaybe('kanban.column', b.name) || b.name}
</button>
))}
</div>
</div>
)
}