diff --git a/server/bundles/io.cloudbeaver.connect.provider.sample/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.connect.provider.sample/META-INF/MANIFEST.MF index 177f61efb7..2d8f7386e4 100644 --- a/server/bundles/io.cloudbeaver.connect.provider.sample/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.connect.provider.sample/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Vendor: %Bundle-Vendor Bundle-Name: %Bundle-Name Bundle-SymbolicName: io.cloudbeaver.connect.provider.sample;singleton:=true -Bundle-Version: 1.0.29.qualifier -Bundle-Release-Date: 20210531 +Bundle-Version: 1.0.30.qualifier +Bundle-Release-Date: 20210621 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . diff --git a/server/bundles/io.cloudbeaver.connect.provider.sample/pom.xml b/server/bundles/io.cloudbeaver.connect.provider.sample/pom.xml index a7d33560bc..5f7e7c8c3a 100644 --- a/server/bundles/io.cloudbeaver.connect.provider.sample/pom.xml +++ b/server/bundles/io.cloudbeaver.connect.provider.sample/pom.xml @@ -10,7 +10,7 @@ ../ io.cloudbeaver.connect.provider.sample - 1.0.29-SNAPSHOT + 1.0.30-SNAPSHOT eclipse-plugin diff --git a/server/bundles/io.cloudbeaver.product.ce/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.product.ce/META-INF/MANIFEST.MF index e332d780a1..b3c83021fe 100644 --- a/server/bundles/io.cloudbeaver.product.ce/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.product.ce/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Vendor: %Bundle-Vendor Bundle-Name: %Bundle-Name Bundle-SymbolicName: io.cloudbeaver.product.ce;singleton:=true -Bundle-Version: 21.0.3.qualifier -Bundle-Release-Date: 20210531 +Bundle-Version: 21.0.4.qualifier +Bundle-Release-Date: 20210621 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . diff --git a/server/bundles/io.cloudbeaver.product.ce/pom.xml b/server/bundles/io.cloudbeaver.product.ce/pom.xml index b98587d87c..b2981dc690 100644 --- a/server/bundles/io.cloudbeaver.product.ce/pom.xml +++ b/server/bundles/io.cloudbeaver.product.ce/pom.xml @@ -10,7 +10,7 @@ ../ io.cloudbeaver.product.ce - 21.0.3-SNAPSHOT + 21.0.4-SNAPSHOT eclipse-plugin diff --git a/server/bundles/io.cloudbeaver.resources.drivers.base/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.resources.drivers.base/META-INF/MANIFEST.MF index 94e929ac85..075ef5f14b 100644 --- a/server/bundles/io.cloudbeaver.resources.drivers.base/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.resources.drivers.base/META-INF/MANIFEST.MF @@ -2,8 +2,8 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Base JDBC drivers Bundle-SymbolicName: io.cloudbeaver.resources.drivers.base;singleton:=true -Bundle-Version: 1.0.26.qualifier -Bundle-Release-Date: 20210531 +Bundle-Version: 1.0.27.qualifier +Bundle-Release-Date: 20210621 Bundle-Vendor: DBeaver Corp Bundle-ActivationPolicy: lazy Automatic-Module-Name: io.cloudbeaver.resources.drivers.base diff --git a/server/bundles/io.cloudbeaver.resources.drivers.base/pom.xml b/server/bundles/io.cloudbeaver.resources.drivers.base/pom.xml index 8ed6248341..177e4de7c2 100644 --- a/server/bundles/io.cloudbeaver.resources.drivers.base/pom.xml +++ b/server/bundles/io.cloudbeaver.resources.drivers.base/pom.xml @@ -9,6 +9,6 @@ ../ io.cloudbeaver.resources.drivers.base - 1.0.26-SNAPSHOT + 1.0.27-SNAPSHOT eclipse-plugin diff --git a/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF index 4d6949db7c..beae35d521 100644 --- a/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Vendor: %Bundle-Vendor Bundle-Name: %Bundle-Name Bundle-SymbolicName: io.cloudbeaver.server;singleton:=true -Bundle-Version: 21.0.3.qualifier -Bundle-Release-Date: 20210531 +Bundle-Version: 21.0.4.qualifier +Bundle-Release-Date: 20210621 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-Activator: io.cloudbeaver.server.WebPlatformActivator diff --git a/server/bundles/io.cloudbeaver.server/pom.xml b/server/bundles/io.cloudbeaver.server/pom.xml index 1b6196f9f1..ff3f12bc0a 100644 --- a/server/bundles/io.cloudbeaver.server/pom.xml +++ b/server/bundles/io.cloudbeaver.server/pom.xml @@ -10,7 +10,7 @@ ../ io.cloudbeaver.server - 21.0.3-SNAPSHOT + 21.0.4-SNAPSHOT eclipse-plugin diff --git a/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF index e002589f69..3a699d43f5 100644 --- a/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Vendor: %Bundle-Vendor Bundle-Name: %Bundle-Name Bundle-SymbolicName: io.cloudbeaver.service.admin;singleton:=true -Bundle-Version: 1.0.25.qualifier -Bundle-Release-Date: 20210531 +Bundle-Version: 1.0.26.qualifier +Bundle-Release-Date: 20210621 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . diff --git a/server/bundles/io.cloudbeaver.service.admin/pom.xml b/server/bundles/io.cloudbeaver.service.admin/pom.xml index ff3c4fae86..448e69c570 100644 --- a/server/bundles/io.cloudbeaver.service.admin/pom.xml +++ b/server/bundles/io.cloudbeaver.service.admin/pom.xml @@ -10,7 +10,7 @@ ../ io.cloudbeaver.service.admin - 1.0.25-SNAPSHOT + 1.0.26-SNAPSHOT eclipse-plugin diff --git a/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF index b80e845d21..157691c6b5 100644 --- a/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Vendor: %Bundle-Vendor Bundle-Name: %Bundle-Name Bundle-SymbolicName: io.cloudbeaver.service.auth;singleton:=true -Bundle-Version: 1.0.25.qualifier -Bundle-Release-Date: 20210531 +Bundle-Version: 1.0.26.qualifier +Bundle-Release-Date: 20210621 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . diff --git a/server/bundles/io.cloudbeaver.service.auth/pom.xml b/server/bundles/io.cloudbeaver.service.auth/pom.xml index a0d85fa2ab..2c5e6aea76 100644 --- a/server/bundles/io.cloudbeaver.service.auth/pom.xml +++ b/server/bundles/io.cloudbeaver.service.auth/pom.xml @@ -10,7 +10,7 @@ ../ io.cloudbeaver.service.auth - 1.0.25-SNAPSHOT + 1.0.26-SNAPSHOT eclipse-plugin diff --git a/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF index 9883068cf4..6f7e78c8aa 100644 --- a/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Vendor: %Bundle-Vendor Bundle-Name: %Bundle-Name Bundle-SymbolicName: io.cloudbeaver.service.data.transfer;singleton:=true -Bundle-Version: 1.0.26.qualifier -Bundle-Release-Date: 20210531 +Bundle-Version: 1.0.27.qualifier +Bundle-Release-Date: 20210621 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . diff --git a/server/bundles/io.cloudbeaver.service.data.transfer/pom.xml b/server/bundles/io.cloudbeaver.service.data.transfer/pom.xml index b31f68fe1c..326eab9404 100644 --- a/server/bundles/io.cloudbeaver.service.data.transfer/pom.xml +++ b/server/bundles/io.cloudbeaver.service.data.transfer/pom.xml @@ -10,7 +10,7 @@ ../ io.cloudbeaver.service.data.transfer - 1.0.26-SNAPSHOT + 1.0.27-SNAPSHOT eclipse-plugin diff --git a/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF index b54b58f721..5e70086ebb 100644 --- a/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Vendor: %Bundle-Vendor Bundle-Name: %Bundle-Name Bundle-SymbolicName: io.cloudbeaver.service.metadata;singleton:=true -Bundle-Version: 1.0.29.qualifier -Bundle-Release-Date: 20210531 +Bundle-Version: 1.0.30.qualifier +Bundle-Release-Date: 20210621 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . diff --git a/server/bundles/io.cloudbeaver.service.metadata/pom.xml b/server/bundles/io.cloudbeaver.service.metadata/pom.xml index 88f05c8c0c..fccbc09b4c 100644 --- a/server/bundles/io.cloudbeaver.service.metadata/pom.xml +++ b/server/bundles/io.cloudbeaver.service.metadata/pom.xml @@ -10,7 +10,7 @@ ../ io.cloudbeaver.service.metadata - 1.0.29-SNAPSHOT + 1.0.30-SNAPSHOT eclipse-plugin diff --git a/server/features/io.cloudbeaver.ce.drivers.feature/feature.xml b/server/features/io.cloudbeaver.ce.drivers.feature/feature.xml index c21af48fcb..eb1111d96b 100644 --- a/server/features/io.cloudbeaver.ce.drivers.feature/feature.xml +++ b/server/features/io.cloudbeaver.ce.drivers.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/server/features/io.cloudbeaver.ce.drivers.feature/pom.xml b/server/features/io.cloudbeaver.ce.drivers.feature/pom.xml index 8f851320d1..3671ea1d30 100644 --- a/server/features/io.cloudbeaver.ce.drivers.feature/pom.xml +++ b/server/features/io.cloudbeaver.ce.drivers.feature/pom.xml @@ -9,6 +9,6 @@ ../ io.cloudbeaver.ce.drivers.feature - 1.0.49-SNAPSHOT + 1.0.50-SNAPSHOT eclipse-feature diff --git a/server/features/io.cloudbeaver.product.ce.feature/feature.xml b/server/features/io.cloudbeaver.product.ce.feature/feature.xml index 964b1ac2f8..97117eb235 100644 --- a/server/features/io.cloudbeaver.product.ce.feature/feature.xml +++ b/server/features/io.cloudbeaver.product.ce.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/server/features/io.cloudbeaver.product.ce.feature/pom.xml b/server/features/io.cloudbeaver.product.ce.feature/pom.xml index 19221d9238..bc9f5ac11c 100644 --- a/server/features/io.cloudbeaver.product.ce.feature/pom.xml +++ b/server/features/io.cloudbeaver.product.ce.feature/pom.xml @@ -10,7 +10,7 @@ ../ io.cloudbeaver.product.ce.feature - 21.0.3-SNAPSHOT + 21.0.4-SNAPSHOT eclipse-feature diff --git a/server/features/io.cloudbeaver.sample.feature/feature.xml b/server/features/io.cloudbeaver.sample.feature/feature.xml index fa40616e71..ed5b6777af 100644 --- a/server/features/io.cloudbeaver.sample.feature/feature.xml +++ b/server/features/io.cloudbeaver.sample.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/server/features/io.cloudbeaver.sample.feature/pom.xml b/server/features/io.cloudbeaver.sample.feature/pom.xml index e30d030414..df34174c99 100644 --- a/server/features/io.cloudbeaver.sample.feature/pom.xml +++ b/server/features/io.cloudbeaver.sample.feature/pom.xml @@ -9,6 +9,6 @@ ../ io.cloudbeaver.sample.feature - 1.0.29-SNAPSHOT + 1.0.30-SNAPSHOT eclipse-feature diff --git a/server/features/io.cloudbeaver.server.feature/feature.xml b/server/features/io.cloudbeaver.server.feature/feature.xml index bafd1dcbbf..02f5e65abe 100644 --- a/server/features/io.cloudbeaver.server.feature/feature.xml +++ b/server/features/io.cloudbeaver.server.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/server/features/io.cloudbeaver.server.feature/pom.xml b/server/features/io.cloudbeaver.server.feature/pom.xml index de7657549f..5f0602448b 100644 --- a/server/features/io.cloudbeaver.server.feature/pom.xml +++ b/server/features/io.cloudbeaver.server.feature/pom.xml @@ -10,6 +10,6 @@ ../ io.cloudbeaver.server.feature - 21.0.3-SNAPSHOT + 21.0.4-SNAPSHOT eclipse-feature diff --git a/server/pom.xml b/server/pom.xml index b360b0ee2e..e3d8bdabd2 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -19,7 +19,7 @@ CloudBeaver CE - 21.0.3 + 21.0.4 diff --git a/server/product/provided-sample/DBeaverWebProvidedSample.product b/server/product/provided-sample/DBeaverWebProvidedSample.product index c507ff36d5..a405ed57ac 100644 --- a/server/product/provided-sample/DBeaverWebProvidedSample.product +++ b/server/product/provided-sample/DBeaverWebProvidedSample.product @@ -1,7 +1,7 @@ - + diff --git a/server/product/provided-sample/pom.xml b/server/product/provided-sample/pom.xml index 56cc490dde..3ae7bb43c4 100644 --- a/server/product/provided-sample/pom.xml +++ b/server/product/provided-sample/pom.xml @@ -9,7 +9,7 @@ 1.0.0-SNAPSHOT ../../ - 21.0.3-SNAPSHOT + 21.0.4-SNAPSHOT provided-sample eclipse-repository Cloudbeaver Provided Sample Product diff --git a/server/product/web-server/CloudbeaverServer.product b/server/product/web-server/CloudbeaverServer.product index 6dce70e6af..ddfae9f5e2 100644 --- a/server/product/web-server/CloudbeaverServer.product +++ b/server/product/web-server/CloudbeaverServer.product @@ -2,7 +2,7 @@ diff --git a/server/product/web-server/pom.xml b/server/product/web-server/pom.xml index a025f4b150..7503095451 100644 --- a/server/product/web-server/pom.xml +++ b/server/product/web-server/pom.xml @@ -9,7 +9,7 @@ 1.0.0-SNAPSHOT ../../ - 21.0.3-SNAPSHOT + 21.0.4-SNAPSHOT web-server eclipse-repository Cloudbeaver Server Product diff --git a/webapp/packages/core-blocks/src/ComplexLoader.tsx b/webapp/packages/core-blocks/src/ComplexLoader.tsx index 94d4f96933..fd127b254b 100644 --- a/webapp/packages/core-blocks/src/ComplexLoader.tsx +++ b/webapp/packages/core-blocks/src/ComplexLoader.tsx @@ -11,25 +11,35 @@ import { useState, useEffect } from 'react'; import { useService } from '@cloudbeaver/core-di'; import { NotificationService } from '@cloudbeaver/core-events'; -export interface ComplexLoaderProps { +interface IComplexLoaderData { + promise: Promise | undefined; + data: T | undefined; + error: Error | undefined; loader: () => Promise; +} + +export interface ComplexLoaderProps { + loader: IComplexLoaderData; placeholder: React.ReactElement; keepLoading?: boolean; children: (content: T) => JSX.Element; } export const ComplexLoader: React.FC> = function ComplexLoader(props) { - const [content, setContent] = useState(null); + const [content, setContent] = useState(props.loader.data); const notificationService = useService(NotificationService); useEffect(() => { let unmounted = false; + if (!content) { props + .loader .loader() .then(value => !unmounted && setContent(value)) .catch(exception => !unmounted && notificationService.logException(exception, 'Can\'t load resource')); } + return () => { unmounted = true; }; @@ -41,3 +51,35 @@ export const ComplexLoader: React.FC> = function Complex return props.children(content); }; + +export function createComplexLoader(loader: () => Promise): IComplexLoaderData { + return { + promise: undefined, + data: undefined, + error: undefined, + async loader() { + if (this.data !== undefined) { + return this.data; + } + + if (this.error) { + throw this.error; + } + + if (this.promise) { + return await this.promise; + } + + this.promise = loader(); + + try { + this.data = await this.promise; + return this.data; + } catch (exception) { + this.error = exception; + + throw exception; + } + }, + }; +} diff --git a/webapp/packages/core-blocks/src/SanitizedHTML/SanitizedHTML.tsx b/webapp/packages/core-blocks/src/SanitizedHTML/SanitizedHTML.tsx index d05c0f7401..a529aede36 100644 --- a/webapp/packages/core-blocks/src/SanitizedHTML/SanitizedHTML.tsx +++ b/webapp/packages/core-blocks/src/SanitizedHTML/SanitizedHTML.tsx @@ -6,12 +6,12 @@ * you may not use this file except in compliance with the License. */ -import { ComplexLoader, Loader } from '@cloudbeaver/core-blocks'; +import { ComplexLoader, createComplexLoader, Loader } from '@cloudbeaver/core-blocks'; -async function loader() { +const loader = createComplexLoader(async function loader() { const { ReactSanitizedHTML } = await import('./ReactSanitizedHTML'); return { ReactSanitizedHTML }; -} +}); interface Props { html: string; diff --git a/webapp/packages/plugin-codemirror/src/CodeEditorLoader.tsx b/webapp/packages/plugin-codemirror/src/CodeEditorLoader.tsx index dcb0270b9c..2fda730f24 100644 --- a/webapp/packages/plugin-codemirror/src/CodeEditorLoader.tsx +++ b/webapp/packages/plugin-codemirror/src/CodeEditorLoader.tsx @@ -6,14 +6,14 @@ * you may not use this file except in compliance with the License. */ -import { ComplexLoader, Loader } from '@cloudbeaver/core-blocks'; +import { ComplexLoader, createComplexLoader, Loader } from '@cloudbeaver/core-blocks'; import type { ICodeEditorProps } from './ICodeEditorProps'; -async function loader() { +const loader = createComplexLoader(async function loader() { const { CodeEditor } = await import('./CodeEditor'); return { CodeEditor }; -} +}); export const CodeEditorLoader: React.FC = function CodeEditorLoader(props) { return ( diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/DataGridLoader.tsx b/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/DataGridLoader.tsx index a4fdc2eb67..1706126dc0 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/DataGridLoader.tsx +++ b/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/DataGridLoader.tsx @@ -8,7 +8,7 @@ import { observer } from 'mobx-react-lite'; -import { ComplexLoader, Loader } from '@cloudbeaver/core-blocks'; +import { ComplexLoader, createComplexLoader, Loader } from '@cloudbeaver/core-blocks'; import type { IDatabaseDataModel } from '@cloudbeaver/plugin-data-viewer'; interface Props { @@ -17,10 +17,10 @@ interface Props { className?: string; } -async function loader() { +const loader = createComplexLoader(async function loader() { const { DataGridTable } = await import('./DataGridTable'); return { DataGridTable }; -} +}); export const DataGridLoader: React.FC = observer(function DataGridLoader({ tableModel, resultIndex, className, diff --git a/webapp/packages/plugin-data-viewer/src/DatabaseDataModel/Actions/Document/DocumentEditAction.ts b/webapp/packages/plugin-data-viewer/src/DatabaseDataModel/Actions/Document/DocumentEditAction.ts index 8e3dddc068..40e781c6ac 100644 --- a/webapp/packages/plugin-data-viewer/src/DatabaseDataModel/Actions/Document/DocumentEditAction.ts +++ b/webapp/packages/plugin-data-viewer/src/DatabaseDataModel/Actions/Document/DocumentEditAction.ts @@ -8,6 +8,7 @@ import { makeObservable, observable } from 'mobx'; +import { Executor, IExecutor } from '@cloudbeaver/core-executor'; import { ResultDataFormat } from '@cloudbeaver/core-sdk'; import { DatabaseDataAction } from '../../DatabaseDataAction'; @@ -15,7 +16,7 @@ import type { IDatabaseDataEditorActionsData } from '../../IDatabaseDataEditor'; import type { IDatabaseDataSource } from '../../IDatabaseDataSource'; import type { IDatabaseResultSet } from '../../IDatabaseResultSet'; import { databaseDataAction } from '../DatabaseDataActionDecorator'; -import type { IDatabaseDataEditAction } from '../IDatabaseDataEditAction'; +import type { IDatabaseDataEditAction, IDatabaseDataEditActionData } from '../IDatabaseDataEditAction'; import { DocumentDataAction } from './DocumentDataAction'; import type { IDatabaseDataDocument } from './IDatabaseDataDocument'; import type { IDocumentElementKey } from './IDocumentElementKey'; @@ -25,12 +26,14 @@ export class DocumentEditAction extends DatabaseDataAction { static dataFormat = ResultDataFormat.Document; + readonly action: IExecutor>; readonly editedElements: Map; constructor(source: IDatabaseDataSource, result: IDatabaseResultSet) { super(source, result); this.editedElements = new Map(); this.resetEditedElements = this.resetEditedElements.bind(this); + this.action = new Executor(); makeObservable(this, { editedElements: observable, @@ -54,9 +57,28 @@ export class DocumentEditAction extends DatabaseDataAction { + key: TKey; + value?: TValue; + prevValue?: TValue; +} + +export interface IDatabaseDataEditActionData { + type: 'edit' | 'revert'; + resultId: string; + value?: IDatabaseDataEditActionValue; +} + export interface IDatabaseDataEditAction extends IDatabaseDataAction { + readonly action: IExecutor>; isEdited: () => boolean; isElementEdited: (key: TKey) => boolean; set: (key: TKey, value: TValue) => void; diff --git a/webapp/packages/plugin-gis-viewer/src/GISViewer.tsx b/webapp/packages/plugin-gis-viewer/src/GISViewer.tsx index 88b915dc72..587dab6ae2 100644 --- a/webapp/packages/plugin-gis-viewer/src/GISViewer.tsx +++ b/webapp/packages/plugin-gis-viewer/src/GISViewer.tsx @@ -6,14 +6,14 @@ * you may not use this file except in compliance with the License. */ -import type { TabContainerPanelComponent } from '@cloudbeaver/core-blocks'; +import { createComplexLoader, TabContainerPanelComponent } from '@cloudbeaver/core-blocks'; import { ComplexLoader, Loader } from '@cloudbeaver/core-blocks'; import type { IDataValuePanelProps, IDatabaseResultSet } from '@cloudbeaver/plugin-data-viewer'; -async function loader() { +const loader = createComplexLoader(async function loader() { const { GISValuePresentation } = await import('./GISValuePresentation'); return { GISValuePresentation }; -} +}); export const GISViewer: TabContainerPanelComponent> = function GISViewer({ model, resultIndex }) { return ( diff --git a/webapp/packages/plugin-sql-editor/src/SqlEditor/SQLCodeEditor/SQLCodeEditorLoader.tsx b/webapp/packages/plugin-sql-editor/src/SqlEditor/SQLCodeEditor/SQLCodeEditorLoader.tsx index efea2523e9..38b756804b 100644 --- a/webapp/packages/plugin-sql-editor/src/SqlEditor/SQLCodeEditor/SQLCodeEditorLoader.tsx +++ b/webapp/packages/plugin-sql-editor/src/SqlEditor/SQLCodeEditor/SQLCodeEditorLoader.tsx @@ -8,15 +8,15 @@ import { observer } from 'mobx-react-lite'; -import { ComplexLoader, Loader } from '@cloudbeaver/core-blocks'; +import { ComplexLoader, createComplexLoader, Loader } from '@cloudbeaver/core-blocks'; import type { ISQLCodeEditorProps } from './ISQLCodeEditorProps'; import type { SQLCodeEditorController } from './SQLCodeEditorController'; -async function loader() { +const loader = createComplexLoader(async function loader() { const { SQLCodeEditor } = await import('./SQLCodeEditor'); return { SQLCodeEditor }; -} +}); export const SQLCodeEditorLoader = observer(function SQLCodeEditorLoader(props, ref) { return ( diff --git a/webapp/packages/product-default/package.json b/webapp/packages/product-default/package.json index fa5005f17d..965fb3e999 100644 --- a/webapp/packages/product-default/package.json +++ b/webapp/packages/product-default/package.json @@ -1,7 +1,7 @@ { "name": "@cloudbeaver/product-default", "sideEffects": false, - "version": "21.0.3", + "version": "21.0.4", "description": "", "license": "Apache-2.0", "main": "lib/index.js",