import { Checkbox } from '@@/form-components/Checkbox'; import { useTableSettings } from './useTableSettings'; export interface Action { id: string; label: string; } interface Props { actions: Action[]; } export interface QuickActionsSettingsType { hiddenQuickActions: string[]; } export function QuickActionsSettings({ actions }: Props) { const { settings, setTableSettings } = useTableSettings<QuickActionsSettingsType>(); return ( <> {actions.map(({ id, label }) => ( <Checkbox key={id} label={label} id={`quick-actions-${id}`} checked={!settings.hiddenQuickActions.includes(id)} onChange={(e) => toggleAction(id, e.target.checked)} /> ))} </> ); function toggleAction(key: string, value: boolean) { setTableSettings(({ hiddenQuickActions = [], ...settings }) => ({ ...settings, hiddenQuickActions: value ? hiddenQuickActions.filter((id) => id !== key) : [...hiddenQuickActions, key], })); } } export function buildAction(id: string, label: string): Action { return { id, label }; }