@@ -8,22 +8,15 @@ import {
88 getScrollbarStyles ,
99 palette ,
1010 resetGlobalCSS ,
11- useEffectOnChange ,
1211} from '@mongodb-js/compass-components' ;
13- import CompassConnections , {
14- SingleConnectionForm ,
15- LegacyConnectionsModal ,
16- } from '@mongodb-js/compass-connections' ;
1712import { CompassFindInPagePlugin } from '@mongodb-js/compass-find-in-page' ;
1813import type { SettingsTabId } from '@mongodb-js/compass-settings' ;
1914import { CompassSettingsPlugin } from '@mongodb-js/compass-settings' ;
15+ import CompassConnections from '@mongodb-js/compass-connections' ;
2016import { WelcomeModal } from '@mongodb-js/compass-welcome' ;
21- import * as hadronIpc from 'hadron-ipc' ;
2217import { type ConnectionStorage } from '@mongodb-js/connection-storage/provider' ;
23- import { AppRegistryProvider , useLocalAppRegistry } from 'hadron-app-registry' ;
24- import type AppRegistry from 'hadron-app-registry' ;
25- import { useSingleConnectionModeConnectionInfoStatus } from '@mongodb-js/compass-connections/provider' ;
26- import React , { useCallback , useEffect , useState } from 'react' ;
18+ import { AppRegistryProvider } from 'hadron-app-registry' ;
19+ import React , { useCallback , useState } from 'react' ;
2720import Workspace from './workspace' ;
2821import { getExtraConnectionData } from '../utils/telemetry' ;
2922// The only place where the app-stores plugin can be used as a plugin and not a
@@ -35,26 +28,11 @@ import { AtlasAuthPlugin } from '@mongodb-js/atlas-service/renderer';
3528import { CompassGenerativeAIPlugin } from '@mongodb-js/compass-generative-ai' ;
3629import type { WorkspaceTab } from '@mongodb-js/compass-workspaces' ;
3730import { ConnectionStorageProvider } from '@mongodb-js/connection-storage/provider' ;
38- import {
39- ConnectionImportExportProvider ,
40- useOpenConnectionImportExportModal ,
41- } from '@mongodb-js/compass-connection-import-export' ;
42- import { usePreference } from 'compass-preferences-model/provider' ;
31+ import { ConnectionImportExportProvider } from '@mongodb-js/compass-connection-import-export' ;
4332import { useTelemetry } from '@mongodb-js/compass-telemetry/provider' ;
44- import { ConnectionInfoProvider } from '@mongodb-js/compass-connections/provider' ;
45- import { CompassShellPlugin } from '@mongodb-js/compass-shell' ;
4633
4734resetGlobalCSS ( ) ;
4835
49- const homePageStyles = css ( {
50- display : 'flex' ,
51- flexDirection : 'row' ,
52- alignItems : 'stretch' ,
53- flex : 1 ,
54- overflow : 'auto' ,
55- height : '100%' ,
56- } ) ;
57-
5836const homeContainerStyles = css ( {
5937 height : '100vh' ,
6038 width : '100vw' ,
@@ -83,26 +61,10 @@ export type HomeProps = {
8361 showCollectionSubMenu : ( args : { isReadOnly : boolean } ) => void ;
8462 hideCollectionSubMenu : ( ) => void ;
8563 showSettings : ( tab ?: SettingsTabId ) => void ;
86- } ;
87-
88- function SingleConnectionFormWithConnectionImportExport ( {
89- appRegistry,
90- } : {
91- appRegistry : AppRegistry ;
92- } ) {
93- const { supportsConnectionImportExport, openConnectionImportExportModal } =
94- useOpenConnectionImportExportModal ( { context : 'connectionsList' } ) ;
95- return (
96- < SingleConnectionForm
97- appRegistry = { appRegistry }
98- openConnectionImportExportModal = {
99- supportsConnectionImportExport
100- ? openConnectionImportExportModal
101- : undefined
102- }
103- />
104- ) ;
105- }
64+ } & Pick <
65+ React . ComponentProps < typeof CompassConnections > ,
66+ 'onAutoconnectInfoRequest'
67+ > ;
10668
10769const verticalSplitStyles = css ( {
10870 width : '100vw' ,
@@ -113,23 +75,18 @@ const verticalSplitStyles = css({
11375 overflow : 'hidden' ,
11476} ) ;
11577
116- const shellContainerStyles = css ( {
117- zIndex : 5 ,
118- } ) ;
119-
12078function Home ( {
12179 appName,
12280 showWelcomeModal = false ,
12381 createFileInputBackend,
124- onDisconnect,
82+ // onDisconnect,
12583 showCollectionSubMenu,
12684 hideCollectionSubMenu,
12785 showSettings,
86+ onAutoconnectInfoRequest,
12887} : Omit < HomeProps , 'connectionStorage' > ) : React . ReactElement | null {
129- const appRegistry = useLocalAppRegistry ( ) ;
130- const { connectionInfo, isConnected, disconnect } =
131- useSingleConnectionModeConnectionInfoStatus ( ) ;
132-
88+ // TODO: port single connection code
89+ /*
13390 useEffect(() => {
13491 function onDisconnect() {
13592 void disconnect();
@@ -142,6 +99,7 @@ function Home({
14299 hadronIpc.ipcRenderer?.removeListener('app:disconnect', onDisconnect);
143100 };
144101 }, [disconnect]);
102+ */
145103
146104 const onWorkspaceChange = useCallback (
147105 ( ws : WorkspaceTab | null , collectionInfo ) => {
@@ -154,12 +112,15 @@ function Home({
154112 [ showCollectionSubMenu , hideCollectionSubMenu ]
155113 ) ;
156114
115+ // TODO: port single connection code
116+ /*
157117 useEffectOnChange(() => {
158118 if (!isConnected) {
159119 hideCollectionSubMenu();
160120 onDisconnect();
161121 }
162122 }, [isConnected, onDisconnect, hideCollectionSubMenu]);
123+ */
163124
164125 const [ isWelcomeOpen , setIsWelcomeOpen ] = useState ( showWelcomeModal ) ;
165126
@@ -173,60 +134,37 @@ function Home({
173134 [ setIsWelcomeOpen , showSettings ]
174135 ) ;
175136
176- const multiConnectionsEnabled = usePreference (
177- 'enableMultipleConnectionSystem'
178- ) ;
179-
180137 return (
181- < FileInputBackendProvider createFileInputBackend = { createFileInputBackend } >
182- < ConnectionImportExportProvider >
183- < CompassInstanceStorePlugin >
184- < FieldStorePlugin >
185- < div data-testid = "home" className = { verticalSplitStyles } >
186- { multiConnectionsEnabled && (
138+ < CompassConnections
139+ appName = { appName }
140+ onExtraConnectionDataRequest = { getExtraConnectionData }
141+ onAutoconnectInfoRequest = { onAutoconnectInfoRequest }
142+ >
143+ < FileInputBackendProvider createFileInputBackend = { createFileInputBackend } >
144+ < ConnectionImportExportProvider >
145+ < CompassInstanceStorePlugin >
146+ < FieldStorePlugin >
147+ < div data-testid = "home" className = { verticalSplitStyles } >
187148 < AppRegistryProvider scopeName = "Multiple Connections" >
188149 < Workspace
189150 appName = { appName }
190151 onActiveWorkspaceTabChange = { onWorkspaceChange }
191152 />
192153 </ AppRegistryProvider >
193- ) }
194- { ! multiConnectionsEnabled &&
195- ( isConnected ? (
196- < AppRegistryProvider scopeName = "Single Connection" >
197- < ConnectionInfoProvider
198- connectionInfoId = { connectionInfo . id }
199- >
200- < Workspace
201- appName = { appName }
202- onActiveWorkspaceTabChange = { onWorkspaceChange }
203- />
204- < div className = { shellContainerStyles } >
205- < CompassShellPlugin />
206- </ div >
207- </ ConnectionInfoProvider >
208- </ AppRegistryProvider >
209- ) : (
210- < div className = { homePageStyles } >
211- < SingleConnectionFormWithConnectionImportExport
212- appRegistry = { appRegistry }
213- />
214- </ div >
215- ) ) }
216- </ div >
217- < WelcomeModal
218- isOpen = { isWelcomeOpen }
219- closeModal = { closeWelcomeModal }
220- />
221- < CompassSettingsPlugin > </ CompassSettingsPlugin >
222- < CompassFindInPagePlugin > </ CompassFindInPagePlugin >
223- < AtlasAuthPlugin > </ AtlasAuthPlugin >
224- < CompassGenerativeAIPlugin > </ CompassGenerativeAIPlugin >
225- < LegacyConnectionsModal />
226- </ FieldStorePlugin >
227- </ CompassInstanceStorePlugin >
228- </ ConnectionImportExportProvider >
229- </ FileInputBackendProvider >
154+ </ div >
155+ < WelcomeModal
156+ isOpen = { isWelcomeOpen }
157+ closeModal = { closeWelcomeModal }
158+ />
159+ < CompassSettingsPlugin > </ CompassSettingsPlugin >
160+ < CompassFindInPagePlugin > </ CompassFindInPagePlugin >
161+ < AtlasAuthPlugin > </ AtlasAuthPlugin >
162+ < CompassGenerativeAIPlugin > </ CompassGenerativeAIPlugin >
163+ </ FieldStorePlugin >
164+ </ CompassInstanceStorePlugin >
165+ </ ConnectionImportExportProvider >
166+ </ FileInputBackendProvider >
167+ </ CompassConnections >
230168 ) ;
231169}
232170
@@ -297,25 +235,14 @@ export function ThemedHome(
297235}
298236
299237export default function HomeWithConnections ( {
300- onAutoconnectInfoRequest,
301238 connectionStorage,
302239 ...props
303- } : HomeProps &
304- Pick <
305- React . ComponentProps < typeof CompassConnections > ,
306- 'onAutoconnectInfoRequest'
307- > & {
308- connectionStorage : ConnectionStorage ;
309- } ) {
240+ } : HomeProps & {
241+ connectionStorage : ConnectionStorage ;
242+ } ) {
310243 return (
311244 < ConnectionStorageProvider value = { connectionStorage } >
312- < CompassConnections
313- appName = { props . appName }
314- onExtraConnectionDataRequest = { getExtraConnectionData }
315- onAutoconnectInfoRequest = { onAutoconnectInfoRequest }
316- >
317- < ThemedHome { ...props } > </ ThemedHome >
318- </ CompassConnections >
245+ < ThemedHome { ...props } > </ ThemedHome >
319246 </ ConnectionStorageProvider >
320247 ) ;
321248}
0 commit comments