From 1f22499273c5da7141101bd339faa9cdecb9077e Mon Sep 17 00:00:00 2001 From: Wroud Date: Fri, 26 Feb 2021 14:27:19 +0300 Subject: [PATCH] feat: CB-638 connection form readonly mode --- .../core-blocks/src/Loader/Loader.tsx | 2 +- .../packages/core-blocks/src/useObjectRef.ts | 6 ++--- .../src/ConnectionForm/ConnectionForm.tsx | 2 +- .../ConnectionForm/ConnectionFormService.ts | 1 + .../DriverProperties/DriverProperties.tsx | 2 +- .../src/ConnectionForm/Options/Options.tsx | 11 +++++++-- .../src/ConnectionForm/SSH/SSH.tsx | 6 +++++ .../src/ConnectionForm/useConnectionData.ts | 23 +++++++++++++++---- .../ConnectionForm/useConnectionFormState.ts | 12 ++++++++++ .../PublicConnectionForm.tsx | 1 + .../PublicConnectionFormService.ts | 6 +++++ 11 files changed, 60 insertions(+), 12 deletions(-) diff --git a/webapp/packages/core-blocks/src/Loader/Loader.tsx b/webapp/packages/core-blocks/src/Loader/Loader.tsx index c103dd94b0..93556a137c 100644 --- a/webapp/packages/core-blocks/src/Loader/Loader.tsx +++ b/webapp/packages/core-blocks/src/Loader/Loader.tsx @@ -96,7 +96,7 @@ export const Loader: React.FC = observer(function Loader({ return () => clearTimeout(id); }, [loading]); - if (!isVisible) { + if (!isVisible && !loading) { return children?.() || null; } diff --git a/webapp/packages/core-blocks/src/useObjectRef.ts b/webapp/packages/core-blocks/src/useObjectRef.ts index 6badadddf6..6bdf32a23a 100644 --- a/webapp/packages/core-blocks/src/useObjectRef.ts +++ b/webapp/packages/core-blocks/src/useObjectRef.ts @@ -6,13 +6,13 @@ * you may not use this file except in compliance with the License. */ -import { observable } from 'mobx'; +import { AnnotationsMap, observable } from 'mobx'; import { useState } from 'react'; -export function useObjectRef(init: T, update?: Partial, observed?: boolean): T { +export function useObjectRef(init: T, update?: Partial, observed?: boolean | AnnotationsMap): T { const [ref] = useState(() => { if (observed) { - return observable.object(init, undefined, { deep: false }); + return observable.object(init, typeof observed === 'object' ? observed : undefined, { deep: false }); } return init; }); diff --git a/webapp/packages/core-connections/src/ConnectionForm/ConnectionForm.tsx b/webapp/packages/core-connections/src/ConnectionForm/ConnectionForm.tsx index 2534da0540..598939aa15 100644 --- a/webapp/packages/core-connections/src/ConnectionForm/ConnectionForm.tsx +++ b/webapp/packages/core-connections/src/ConnectionForm/ConnectionForm.tsx @@ -128,7 +128,7 @@ export const ConnectionForm = observer(function ConnectionForm({