import { type MouseEvent } from 'react'; import { ActionIcon, Tooltip } from '@mantine/core'; import { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu'; import { MRT_EditActionButtons } from './MRT_EditActionButtons'; import { type MRT_Cell, type MRT_Row, type MRT_TableInstance } from '../types'; interface Props = {}> { cell: MRT_Cell; row: MRT_Row; table: MRT_TableInstance; } export const MRT_ToggleRowActionMenuButton = < TData extends Record = {}, >({ cell, row, table, }: Props) => { const { getState, options: { createDisplayMode, editDisplayMode, enableEditing, icons: { IconEdit }, localization, renderRowActionMenuItems, renderRowActions, }, setEditingRow, } = table; const { creatingRow, editingRow } = getState(); const isCreating = creatingRow?.id === row.id; const isEditing = editingRow?.id === row.id; const handleStartEditMode = (event: MouseEvent) => { event.stopPropagation(); setEditingRow({ ...row }); }; const showEditActionButtons = (isCreating && createDisplayMode === 'row') || (isEditing && editDisplayMode === 'row'); return ( <> {renderRowActions && !showEditActionButtons ? ( renderRowActions({ cell, row, table }) ) : showEditActionButtons ? ( ) : !renderRowActionMenuItems && (enableEditing instanceof Function ? enableEditing(row) : enableEditing) ? ( ) : renderRowActionMenuItems ? ( ) : null} ); };