@@ -2,12 +2,15 @@ import React, { useCallback, useState } from 'react';
22import PropTypes from 'prop-types' ;
33import { SaveConnectionModal } from '@mongodb-js/connection-form' ;
44
5+ import { ThemeProvider , Theme } from '@mongodb-js/compass-components' ;
6+
57import SidebarInstanceStats from '../sidebar-instance-stats' ;
68import SidebarInstanceDetails from '../sidebar-instance-details' ;
79import NonGenuineWarningPill from '../non-genuine-warning-pill' ;
810import FavoriteButton from '../favorite-button' ;
911import CSFLEMarker from '../csfle-marker' ;
1012import CSFLEConnectionModal from '../csfle-connection-modal' ;
13+ import NonGenuineWarningModal from '../non-genuine-warning-modal' ;
1114
1215import styles from './sidebar-instance.module.less' ;
1316import { cloneDeep } from 'lodash' ;
@@ -22,6 +25,8 @@ export const SidebarInstance = ({
2225 connectionOptions,
2326 updateConnectionInfo,
2427 setConnectionIsCSFLEEnabled,
28+ isGenuineMongoDBVisible,
29+ toggleIsGenuineMongoDBVisible,
2530} ) => {
2631 const [ isFavoriteModalVisible , setIsFavoriteModalVisible ] = useState ( false ) ;
2732 const [ isCSFLEModalVisible , setIsCSFLEModalVisible ] = useState ( false ) ;
@@ -38,6 +43,16 @@ export const SidebarInstance = ({
3843 [ connectionInfo , updateConnectionInfo , setIsFavoriteModalVisible ]
3944 ) ;
4045
46+ // We have a separate theme provider here because this is still the old
47+ // sidebar code which has the dark "reversed" theme. And unless we provide the
48+ // light theme it will inherit the dark theme from the old sidebar for the
49+ // modals.
50+ const theme = useState ( {
51+ theme :
52+ process ?. env ?. COMPASS_LG_DARKMODE === 'true' ? Theme . Dark : Theme . Light ,
53+ enabled : true ,
54+ } ) ;
55+
4156 return (
4257 < div className = { styles [ 'sidebar-instance' ] } >
4358 < SidebarInstanceStats
@@ -59,18 +74,6 @@ export const SidebarInstance = ({
5974 setIsCSFLEModalVisible ( ! isCSFLEModalVisible )
6075 }
6176 />
62- < CSFLEConnectionModal
63- open = { isCSFLEModalVisible }
64- setOpen = { ( open ) => setIsCSFLEModalVisible ( open ) }
65- csfleMode = { instance ?. csfleMode }
66- setConnectionIsCSFLEEnabled = { setConnectionIsCSFLEEnabled }
67- />
68- < SaveConnectionModal
69- initialFavoriteInfo = { connectionInfo . favorite }
70- open = { isFavoriteModalVisible }
71- onCancelClicked = { ( ) => setIsFavoriteModalVisible ( false ) }
72- onSaveClicked = { ( favoriteInfo ) => onClickSaveFavorite ( favoriteInfo ) }
73- />
7477 < NonGenuineWarningPill
7578 isGenuineMongoDB = { instance ?. genuineMongoDB . isGenuine }
7679 />
@@ -79,6 +82,25 @@ export const SidebarInstance = ({
7982 connectionOptions = { connectionOptions }
8083 isExpanded = { isExpanded }
8184 />
85+
86+ < ThemeProvider theme = { theme } >
87+ < SaveConnectionModal
88+ initialFavoriteInfo = { connectionInfo . favorite }
89+ open = { isFavoriteModalVisible }
90+ onCancelClicked = { ( ) => setIsFavoriteModalVisible ( false ) }
91+ onSaveClicked = { ( favoriteInfo ) => onClickSaveFavorite ( favoriteInfo ) }
92+ />
93+ < CSFLEConnectionModal
94+ open = { isCSFLEModalVisible }
95+ setOpen = { ( open ) => setIsCSFLEModalVisible ( open ) }
96+ csfleMode = { instance ?. csfleMode }
97+ setConnectionIsCSFLEEnabled = { setConnectionIsCSFLEEnabled }
98+ />
99+ < NonGenuineWarningModal
100+ isVisible = { isGenuineMongoDBVisible }
101+ toggleIsVisible = { toggleIsGenuineMongoDBVisible }
102+ />
103+ </ ThemeProvider >
82104 </ div >
83105 ) ;
84106} ;
@@ -94,6 +116,8 @@ SidebarInstance.propTypes = {
94116 connectionOptions : PropTypes . object . isRequired ,
95117 updateConnectionInfo : PropTypes . func . isRequired ,
96118 setConnectionIsCSFLEEnabled : PropTypes . func . isRequired ,
119+ isGenuineMongoDBVisible : PropTypes . bool . isRequired ,
120+ toggleIsGenuineMongoDBVisible : PropTypes . func . isRequired ,
97121} ;
98122
99123export default SidebarInstance ;
0 commit comments