import { type MouseEvent } from 'react'; import { ActionIcon, Tooltip } from '@mantine/core'; import { MRT_EditActionButtons } from './MRT_EditActionButtons'; import { type MRT_Cell, type MRT_CellValue, type MRT_Row, type MRT_RowData, type MRT_TableInstance, } from '../../types'; import { parseFromValuesOrFunc } from '../../utils/utils'; import { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu'; interface Props { cell: MRT_Cell; row: MRT_Row; table: MRT_TableInstance; } export const MRT_ToggleRowActionMenuButton = ({ cell, row, table, }: Props) => { 'use no memo'; const { getState, options: { createDisplayMode, editDisplayMode, enableEditing, icons: { IconEdit }, localization: { edit }, 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 && parseFromValuesOrFunc(enableEditing, row) ? ( ) : renderRowActionMenuItems ? ( ) : null} ); };