import { useActionCellColumnBase } from '../ActionCell'; import { TableColumn as WSRTableColumn, TableColumn as TableColumnWSR, } from '@wix/design-system/dist/types/Table'; import React, { useMemo } from 'react'; import { NestedTableKeyedItem, NestedTableNestedModeState } from '../../state'; import { NestedTableActionCell } from './NestedTableActionCell'; import { NestedTableFlatModeState } from '../../state/NestedTableState/NestedTableFlatModeState'; import { NestedTableFlatKeyedItem } from '../../state/NestedTableState/NestedTableFlatModeSectionState'; export interface UseNestedTableActionCellParams { state: NestedTableNestedModeState | NestedTableFlatModeState; actionCellWidth?: string | number; actionCellProps?: Partial>; } export function useNestedTableActionCell< A extends | NestedTableKeyedItem | NestedTableFlatKeyedItem, >(params: UseNestedTableActionCellParams): WSRTableColumn | null { const { state, actionCellProps, actionCellWidth } = params; const baseColumn = useActionCellColumnBase({ actionCellProps, actionCellWidth, }); return useMemo(() => { const isActionsColumnRequired = state.levels.some( (level) => level.actionCell, ); if (!isActionsColumnRequired) { return null; } return { ...baseColumn, render: (keyedItem, rowNum) => { if (keyedItem.item.originalKeyedItem) { return ( ); } return null; }, }; }, [baseColumn, state]); }