mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-4698 fix: limit grid inline editor (#2608)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
This commit is contained in:
co-authored by
Evgenia Bezborodova
parent
bac47d20ce
commit
39bfc54ca5
@@ -54,6 +54,7 @@ function isAtBottom(event: React.UIEvent<HTMLDivElement>): boolean {
|
||||
|
||||
const rowHeight = 25;
|
||||
const headerHeight = 28;
|
||||
const MAX_CELL_TEXT_SIZE = 100 * 1024;
|
||||
|
||||
export const DataGridTable = observer<IDataPresentationProps<any, IDatabaseResultSet>>(function DataGridTable({
|
||||
model,
|
||||
@@ -82,6 +83,7 @@ export const DataGridTable = observer<IDataPresentationProps<any, IDatabaseResul
|
||||
|
||||
const focusSyncRef = useRef<CellPosition | null>(null);
|
||||
|
||||
const tableData = useTableData(model, resultIndex, dataGridDivRef);
|
||||
const editingContext = useEditing({
|
||||
readonly: model.isReadonly(resultIndex) || model.isDisabled(resultIndex),
|
||||
onEdit: (position, code, key) => {
|
||||
@@ -114,6 +116,14 @@ export const DataGridTable = observer<IDataPresentationProps<any, IDatabaseResul
|
||||
}
|
||||
}
|
||||
|
||||
const isTruncated = tableData.dataContent.isTextTruncated(cellKey) || tableData.dataContent.isBlobTruncated(cellKey);
|
||||
const isHugeText = tableData.format.getText(cellKey).length > MAX_CELL_TEXT_SIZE;
|
||||
|
||||
if (isHugeText || isTruncated) {
|
||||
actions.setValuePresentation('value-text-presentation');
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
onCloseEditor: () => {
|
||||
@@ -121,7 +131,6 @@ export const DataGridTable = observer<IDataPresentationProps<any, IDatabaseResul
|
||||
},
|
||||
});
|
||||
|
||||
const tableData = useTableData(model, resultIndex, dataGridDivRef);
|
||||
const gridSelectionContext = useGridSelectionContext(tableData, selectionAction);
|
||||
|
||||
function restoreFocus() {
|
||||
|
||||
Reference in New Issue
Block a user