import { useCallback } from 'react'; import { FieldMetadata } from '@/ui/data/field/types/FieldMetadata'; import { IconPlus } from '@/ui/display/icon'; import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer'; import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem'; import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue'; import { useTableColumns } from '../hooks/useTableColumns'; import { TableRecoilScopeContext } from '../states/recoil-scope-contexts/TableRecoilScopeContext'; import { hiddenTableColumnsScopedSelector } from '../states/selectors/hiddenTableColumnsScopedSelector'; import { ColumnDefinition } from '../types/ColumnDefinition'; export const DataTableHeaderPlusButtonContent = () => { const { closeDropdown } = useDropdown(); const hiddenTableColumns = useRecoilScopedValue( hiddenTableColumnsScopedSelector, TableRecoilScopeContext, ); const { handleColumnVisibilityChange } = useTableColumns(); const handleAddColumn = useCallback( (column: ColumnDefinition) => { closeDropdown(); handleColumnVisibilityChange(column); }, [handleColumnVisibilityChange, closeDropdown], ); return ( {hiddenTableColumns.map((column) => ( handleAddColumn(column), }, ]} LeftIcon={column.Icon} text={column.name} /> ))} ); };