From a974c28a281f341e21643eeda535742e015aa17d Mon Sep 17 00:00:00 2001 From: Naumov Alexey Date: Wed, 30 Jun 2021 19:46:52 +0300 Subject: [PATCH] feat(plugin-data-spreadsheet): CB-1046 useObject dependecies --- .../src/DataGrid/Formatters/CellFormatter.tsx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/Formatters/CellFormatter.tsx b/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/Formatters/CellFormatter.tsx index 350679f1c6..46a0ac1f0f 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/Formatters/CellFormatter.tsx +++ b/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/Formatters/CellFormatter.tsx @@ -14,13 +14,18 @@ import styled from 'reshadow'; import { useObjectRef } from '@cloudbeaver/core-blocks'; import { IDataPresentationActions, IResultSetElementKey, ResultSetFormatAction } from '@cloudbeaver/plugin-data-viewer'; -import { EditingContext } from '../../Editing/EditingContext'; +import { EditingContext, IEditingContext } from '../../Editing/EditingContext'; import { CellEditor, IEditorRef } from '../CellEditor/CellEditor'; import { CellContext } from '../CellRenderer/CellContext'; import { DataGridContext } from '../DataGridContext'; -import { TableDataContext } from '../TableDataContext'; +import { ITableData, TableDataContext } from '../TableDataContext'; import { CellMenu } from './Menu/CellMenu'; +interface ISpreadsheetActionsPrivate extends IDataPresentationActions{ + tableDataContext: ITableData | null; + editingContext: IEditingContext | null; +} + function getClasses(rawValue: any) { const classes = []; if (rawValue === null) { @@ -41,19 +46,21 @@ export const CellFormatter: React.FC = observer(function CellFor const [menuVisible, setMenuVisible] = useState(false); const value = formatter?.toDisplayString(rawValue) ?? String(rawValue); - const spreadsheetActions = useObjectRef>({ + const spreadsheetActions = useObjectRef>({ + tableDataContext, + editingContext, edit(position) { if (position.column === undefined || position.row === undefined) { return; } - const idx = tableDataContext?.getColumnIndexFromKey(position.column); + const idx = this.tableDataContext?.getColumnIndexFromKey(position.column); if (idx !== undefined && idx !== null) { - editingContext?.edit({ idx, rowIdx: position.row }); + this.editingContext?.edit({ idx, rowIdx: position.row }); } }, - }); + }, { tableDataContext, editingContext }); const handleClose = useCallback(() => { editingContext?.closeEditor({ idx: column.idx, rowIdx });