mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-19 17:01:13 +00:00
Move tabs state out into React (#621)
This PR is just about moving the tabs array. I'm hoping to let it bake for a bit before merging the rest of the tabs in react work. Preview here: https://ms.portal.azure.com/?dataExplorerSource=https%3A%2F%2Fcosmos-explorer-preview.azurewebsites.net%2Fcommit%2Fda809beb82bb54dc82da18eda41caaf7b9b6597f%2Fexplorer.html#@microsoft.onmicrosoft.com/resource/subscriptions/b9c77f10-b438-4c32-9819-eef8a654e478/resourceGroups/stfaul/providers/Microsoft.DocumentDb/databaseAccounts/stfaul-sql/dataExplorer
This commit is contained in:
@@ -93,6 +93,7 @@ export interface ExplorerParams {
|
||||
closeSidePanel: () => void;
|
||||
closeDialog: () => void;
|
||||
openDialog: (props: DialogProps) => void;
|
||||
tabsManager: TabsManager;
|
||||
}
|
||||
|
||||
export default class Explorer {
|
||||
@@ -600,7 +601,7 @@ export default class Explorer {
|
||||
container: this,
|
||||
});
|
||||
|
||||
this.tabsManager = new TabsManager();
|
||||
this.tabsManager = params?.tabsManager ?? new TabsManager();
|
||||
|
||||
this._panes = [
|
||||
this.addDatabasePane,
|
||||
|
||||
@@ -50,10 +50,6 @@ export class SplashScreen extends React.Component<SplashScreenProps> {
|
||||
this.subscriptions = [];
|
||||
}
|
||||
|
||||
public shouldComponentUpdate() {
|
||||
return this.container.tabsManager.openedTabs.length === 0;
|
||||
}
|
||||
|
||||
public componentWillUnmount() {
|
||||
while (this.subscriptions.length) {
|
||||
this.subscriptions.pop().dispose();
|
||||
@@ -62,7 +58,6 @@ export class SplashScreen extends React.Component<SplashScreenProps> {
|
||||
|
||||
public componentDidMount() {
|
||||
this.subscriptions.push(
|
||||
this.container.tabsManager.openedTabs.subscribe(() => this.setState({})),
|
||||
this.container.selectedNode.subscribe(() => this.setState({})),
|
||||
this.container.isNotebookEnabled.subscribe(() => this.setState({}))
|
||||
);
|
||||
@@ -80,7 +75,13 @@ export class SplashScreen extends React.Component<SplashScreenProps> {
|
||||
const tipsItems = this.createTipsItems();
|
||||
const onClearRecent = this.clearMostRecent;
|
||||
|
||||
return (
|
||||
const formContainer = (jsx: JSX.Element) => (
|
||||
<div className="connectExplorerContainer">
|
||||
<form className="connectExplorerFormContainer">{jsx}</form>
|
||||
</div>
|
||||
);
|
||||
|
||||
return formContainer(
|
||||
<div className="splashScreenContainer">
|
||||
<div className="splashScreen">
|
||||
<div className="title">
|
||||
|
||||
Reference in New Issue
Block a user