Skip to content

Commit 515a4ac

Browse files
authored
fix(legacy-sidebar): Don't inherit the dark theme from the old sidebar for its modals (#3398)
Don't inherit the dark theme from the old sidebar for its modals
1 parent 87b3465 commit 515a4ac

File tree

3 files changed

+44
-20
lines changed

3 files changed

+44
-20
lines changed

packages/compass-sidebar/src/components-legacy/non-genuine-warning-modal/non-genuine-warning-modal.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ NonGenuineWarningModal.displayName = 'NonGenuineWarningModal';
7777
NonGenuineWarningModal.propTypes = {
7878
isVisible: PropTypes.bool.isRequired,
7979
toggleIsVisible: PropTypes.func.isRequired,
80+
darkMode: PropTypes.bool,
8081
};
8182

8283
export default NonGenuineWarningModal;

packages/compass-sidebar/src/components-legacy/sidebar-instance/sidebar-instance.jsx

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ import React, { useCallback, useState } from 'react';
22
import PropTypes from 'prop-types';
33
import { SaveConnectionModal } from '@mongodb-js/connection-form';
44

5+
import { ThemeProvider, Theme } from '@mongodb-js/compass-components';
6+
57
import SidebarInstanceStats from '../sidebar-instance-stats';
68
import SidebarInstanceDetails from '../sidebar-instance-details';
79
import NonGenuineWarningPill from '../non-genuine-warning-pill';
810
import FavoriteButton from '../favorite-button';
911
import CSFLEMarker from '../csfle-marker';
1012
import CSFLEConnectionModal from '../csfle-connection-modal';
13+
import NonGenuineWarningModal from '../non-genuine-warning-modal';
1114

1215
import styles from './sidebar-instance.module.less';
1316
import { 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

99123
export default SidebarInstance;

packages/compass-sidebar/src/components-legacy/sidebar/sidebar.jsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import styles from './sidebar.module.less';
1414

1515
import SidebarTitle from '../sidebar-title';
1616
import SidebarInstance from '../sidebar-instance';
17-
import NonGenuineWarningModal from '../non-genuine-warning-modal';
1817
import SidebarDatabasesNavigation from '../sidebar-databases-navigation';
1918

2019
import { toggleIsDetailsExpanded } from '../../modules/is-details-expanded';
@@ -50,12 +49,12 @@ class Sidebar extends PureComponent {
5049
isDetailsExpanded: PropTypes.bool.isRequired,
5150
toggleIsDetailsExpanded: PropTypes.func.isRequired,
5251
changeFilterRegex: PropTypes.func.isRequired,
53-
isGenuineMongoDBVisible: PropTypes.bool.isRequired,
54-
toggleIsGenuineMongoDBVisible: PropTypes.func.isRequired,
5552
globalAppRegistryEmit: PropTypes.func.isRequired,
5653
connectionInfo: PropTypes.object.isRequired,
5754
connectionOptions: PropTypes.object.isRequired,
5855
updateAndSaveConnectionInfo: PropTypes.func.isRequired,
56+
isGenuineMongoDBVisible: PropTypes.bool.isRequired,
57+
toggleIsGenuineMongoDBVisible: PropTypes.func.isRequired,
5958
};
6059

6160
state = {
@@ -218,6 +217,10 @@ class Sidebar extends PureComponent {
218217
connectionInfo={this.props.connectionInfo}
219218
connectionOptions={this.props.connectionOptions}
220219
updateConnectionInfo={this.props.updateAndSaveConnectionInfo}
220+
isGenuineMongoDBVisible={this.props.isGenuineMongoDBVisible}
221+
toggleIsGenuineMongoDBVisible={
222+
this.props.toggleIsGenuineMongoDBVisible
223+
}
221224
setConnectionIsCSFLEEnabled={(enabled) =>
222225
this.handleSetConnectionIsCSFLEEnabled(enabled)
223226
}
@@ -250,10 +253,6 @@ class Sidebar extends PureComponent {
250253
{isExpanded && <SidebarDatabasesNavigation />}
251254
{this.props.instance && this.renderCreateDatabaseButton()}
252255
</div>
253-
<NonGenuineWarningModal
254-
isVisible={this.props.isGenuineMongoDBVisible}
255-
toggleIsVisible={this.props.toggleIsGenuineMongoDBVisible}
256-
/>
257256
</div>
258257
</ThemeProvider>
259258
);
@@ -283,10 +282,10 @@ const mapStateToProps = (state) => ({
283282
*/
284283
const MappedSidebar = connect(mapStateToProps, {
285284
toggleIsDetailsExpanded,
286-
toggleIsGenuineMongoDBVisible,
287285
changeFilterRegex,
288286
globalAppRegistryEmit,
289287
updateAndSaveConnectionInfo,
288+
toggleIsGenuineMongoDBVisible,
290289
})(Sidebar);
291290

292291
export default MappedSidebar;

0 commit comments

Comments
 (0)