import { useRef, useState } from 'react'; import { NavIcon } from '../../NavIcon'; import { useClickOutside } from '../../../hooks/useClickOutside'; import { __ } from '../../../lib/i18n'; export type ColumnToggleDef = { id: string; label: string }; const btnClass = 'inline-flex items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 text-sm font-medium text-slate-700 shadow-sm hover:bg-slate-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500/40 focus-visible:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-200 dark:hover:bg-slate-700 dark:focus-visible:ring-offset-slate-900'; /** * Sikshya-style column visibility popover (checkboxes per toggleable column). */ export function ColumnVisibilityMenu({ columns, visibility, onChange, }: { columns: ColumnToggleDef[]; visibility: Record; onChange: (id: string, next: boolean) => void; }) { const [open, setOpen] = useState(false); const ref = useRef(null); useClickOutside(ref, () => setOpen(false), open); if (columns.length === 0) { return null; } return (
{open ? (

{__('Visible columns', 'sikshya')}

    {columns.map((c) => (
  • ))}
) : null}
); }