// меню «Колонки» экранов «Спринт» и «Kanban»: скрыть колонки доски; последнюю видимую скрыть нельзя import { Badge, Checkbox, Dropdown, IconChevronDown } from "../../../ui/index.ts"; import { effectiveHidden } from "./columns.ts"; export function ColumnsMenu({ names, hidden, onChange }: { names: string[]; hidden: string[]; onChange(hidden: string[]): void }) { const gone = effectiveHidden(names, hidden); // имена, которых на доске больше нет, не показываются и не считаются const visible = names.filter((n) => !gone.includes(n)); const flip = (name: string, show: boolean) => onChange(names.filter((n) => (n === name ? !show : gone.includes(n)))); return ( ( )}> {() => (
{names.map((n) => { const on = !gone.includes(n); return flip(n, e.target.checked)} />; })}
)}
); }