From 4956ea4d4dd26dba023cdbc7f6afef56290e69a1 Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Wed, 9 Oct 2024 17:04:44 +0100 Subject: [PATCH 1/5] save, connect, save & onnect --- .../src/stores/connections-store.tsx | 9 +- .../multiple-connections/sidebar.tsx | 37 ++++-- ...=> connection-form-modal-actions.spec.tsx} | 2 +- ....tsx => connection-form-modal-actions.tsx} | 14 +- .../src/components/connection-form.spec.tsx | 7 +- .../src/components/connection-form.tsx | 120 +++++++++++------- .../src/hooks/use-connect-form-settings.tsx | 2 +- 7 files changed, 129 insertions(+), 62 deletions(-) rename packages/connection-form/src/components/{connection-form-actions.spec.tsx => connection-form-modal-actions.spec.tsx} (97%) rename packages/connection-form/src/components/{connection-form-actions.tsx => connection-form-modal-actions.tsx} (88%) diff --git a/packages/compass-connections/src/stores/connections-store.tsx b/packages/compass-connections/src/stores/connections-store.tsx index 1259a364e11..8ebf73a7911 100644 --- a/packages/compass-connections/src/stores/connections-store.tsx +++ b/packages/compass-connections/src/stores/connections-store.tsx @@ -5,6 +5,7 @@ type State = { connectionErrors: Record; editingConnectionInfo: ConnectionInfo; isEditingConnectionInfoModalOpen: boolean; + isEditingNewConnection: boolean; oidcDeviceAuthState: Record; }; @@ -32,16 +33,16 @@ export function useConnections(): { showNonGenuineMongoDBWarningModal: (connectionId: string) => void; } { const connectionsState = useConnectionsState(); + const editingConnection = + connectionsState.connections.byId[connectionsState.editingConnectionInfoId]; const state = { connectionErrors: Object.fromEntries( Object.entries(connectionsState.connections.byId).map(([k, v]) => { return [k, v.error ?? null]; }) ), - editingConnectionInfo: - connectionsState.connections.byId[ - connectionsState.editingConnectionInfoId - ].info, + editingConnectionInfo: editingConnection.info, + isEditingNewConnection: !!editingConnection.isBeingCreated, isEditingConnectionInfoModalOpen: connectionsState.isEditingConnectionInfoModalOpen, oidcDeviceAuthState: Object.fromEntries( diff --git a/packages/compass-sidebar/src/components/multiple-connections/sidebar.tsx b/packages/compass-sidebar/src/components/multiple-connections/sidebar.tsx index d89835c4a7a..5e505aeedbc 100644 --- a/packages/compass-sidebar/src/components/multiple-connections/sidebar.tsx +++ b/packages/compass-sidebar/src/components/multiple-connections/sidebar.tsx @@ -120,6 +120,7 @@ export function MultipleConnectionSidebar({ showNonGenuineMongoDBWarningModal, state: { editingConnectionInfo, + isEditingNewConnection, isEditingConnectionInfoModalOpen, connectionErrors, }, @@ -184,6 +185,10 @@ export function MultipleConnectionSidebar({ [globalAppRegistry] ); + const disableEditingConnectedConnection = !!findActiveConnection( + editingConnectionInfo.id + ); + return (