mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-10-24 11:35:54 +08:00
Merge pull request #679 from dbeaver/fix/remove-constraints-on-presentation-change
Fix/remove constraints on presentation change
This commit is contained in:
@@ -11,11 +11,12 @@ import { observer } from 'mobx-react-lite';
|
||||
import { useEffect } from 'react';
|
||||
import styled, { css } from 'reshadow';
|
||||
|
||||
import { Loader, Pane, ResizerControls, Split, splitStyles, TextPlaceholder, useObservableRef } from '@cloudbeaver/core-blocks';
|
||||
import { Loader, Pane, ResizerControls, Split, splitStyles, TextPlaceholder, useObjectRef, useObservableRef } from '@cloudbeaver/core-blocks';
|
||||
import { useService } from '@cloudbeaver/core-di';
|
||||
import { ResultDataFormat } from '@cloudbeaver/core-sdk';
|
||||
import { composes, useStyles } from '@cloudbeaver/core-theming';
|
||||
|
||||
import { ResultSetConstraintAction } from '../DatabaseDataModel/Actions/ResultSet/ResultSetConstraintAction';
|
||||
import { DataPresentationService, DataPresentationType } from '../DataPresentationService';
|
||||
import type { IDataTableActionsPrivate } from './IDataTableActions';
|
||||
import { TableError } from './TableError';
|
||||
@@ -120,6 +121,16 @@ export const TableViewer = observer<Props>(function TableViewer({
|
||||
const loading = dataModel?.isLoading() ?? true;
|
||||
const dataFormat = result?.dataFormat || ResultDataFormat.Resultset;
|
||||
|
||||
const localActions = useObjectRef({
|
||||
clearConstraints() {
|
||||
const constraints = dataModel?.source.tryGetAction(resultIndex, ResultSetConstraintAction);
|
||||
|
||||
if (constraints) {
|
||||
constraints.deleteAll();
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const dataTableActions = useObservableRef<IDataTableActionsPrivate>(() => ({
|
||||
setPresentation(id: string) {
|
||||
const presentation = dataPresentationService.get(id);
|
||||
@@ -131,6 +142,8 @@ export const TableViewer = observer<Props>(function TableViewer({
|
||||
) {
|
||||
this.dataModel?.setDataFormat(presentation.dataFormat).reload();
|
||||
}
|
||||
|
||||
localActions.clearConstraints();
|
||||
this.onPresentationChange(id);
|
||||
}
|
||||
},
|
||||
@@ -196,6 +209,7 @@ export const TableViewer = observer<Props>(function TableViewer({
|
||||
const presentation = dataPresentationService.get(presentationId);
|
||||
|
||||
if (presentation?.dataFormat && !dataModel.supportedDataFormats.includes(presentation.dataFormat)) {
|
||||
localActions.clearConstraints();
|
||||
onPresentationChange(dataFormat);
|
||||
}
|
||||
}, [dataFormat]);
|
||||
|
||||
Reference in New Issue
Block a user