Remove NotebookViewerTab (#749)
[Preview this branch](https://cosmos-explorer-preview.azurewebsites.net/pull/749)
This commit is contained in:
parent
a91ea6c1e4
commit
78eafe1aec
|
@ -1,6 +1,5 @@
|
||||||
import * as ko from "knockout";
|
|
||||||
import { IChoiceGroupProps } from "@fluentui/react";
|
import { IChoiceGroupProps } from "@fluentui/react";
|
||||||
import * as path from "path";
|
import * as ko from "knockout";
|
||||||
import Q from "q";
|
import Q from "q";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import _ from "underscore";
|
import _ from "underscore";
|
||||||
|
@ -1843,39 +1842,6 @@ export default class Explorer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async openNotebookViewer(notebookUrl: string) {
|
|
||||||
const title = path.basename(notebookUrl);
|
|
||||||
const hashLocation = notebookUrl;
|
|
||||||
const NotebookViewerTab = await (
|
|
||||||
await import(/* webpackChunkName: "NotebookViewerTab" */ "./Tabs/NotebookViewerTab")
|
|
||||||
).default;
|
|
||||||
|
|
||||||
const notebookViewerTab = this.tabsManager.getTabs(ViewModels.CollectionTabKind.NotebookV2).find((tab) => {
|
|
||||||
return tab.hashLocation() == hashLocation && tab instanceof NotebookViewerTab && tab.notebookUrl === notebookUrl;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (notebookViewerTab) {
|
|
||||||
this.tabsManager.activateNewTab(notebookViewerTab);
|
|
||||||
} else {
|
|
||||||
const notebookViewerTab = new NotebookViewerTab({
|
|
||||||
account: userContext.databaseAccount,
|
|
||||||
tabKind: ViewModels.CollectionTabKind.NotebookViewer,
|
|
||||||
node: null,
|
|
||||||
title: title,
|
|
||||||
tabPath: title,
|
|
||||||
collection: null,
|
|
||||||
hashLocation: hashLocation,
|
|
||||||
isTabsContentExpanded: ko.observable(true),
|
|
||||||
onLoadStartKey: null,
|
|
||||||
onUpdateTabsButtons: this.onUpdateTabsButtons,
|
|
||||||
container: this,
|
|
||||||
notebookUrl,
|
|
||||||
});
|
|
||||||
|
|
||||||
this.tabsManager.activateNewTab(notebookViewerTab);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public onNewCollectionClicked(databaseId?: string): void {
|
public onNewCollectionClicked(databaseId?: string): void {
|
||||||
if (userContext.apiType === "Cassandra") {
|
if (userContext.apiType === "Cassandra") {
|
||||||
this.cassandraAddCollectionPane.open();
|
this.cassandraAddCollectionPane.open();
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
import * as ko from "knockout";
|
|
||||||
import * as React from "react";
|
|
||||||
import { ReactAdapter } from "../../Bindings/ReactBindingHandler";
|
|
||||||
import { DatabaseAccount } from "../../Contracts/DataModels";
|
|
||||||
import * as ViewModels from "../../Contracts/ViewModels";
|
|
||||||
import { CommandButtonComponentProps } from "../Controls/CommandButton/CommandButtonComponent";
|
|
||||||
import {
|
|
||||||
NotebookViewerComponent,
|
|
||||||
NotebookViewerComponentProps,
|
|
||||||
} from "../Controls/NotebookViewer/NotebookViewerComponent";
|
|
||||||
import Explorer from "../Explorer";
|
|
||||||
import TabsBase from "./TabsBase";
|
|
||||||
|
|
||||||
interface NotebookViewerTabOptions extends ViewModels.TabOptions {
|
|
||||||
account: DatabaseAccount;
|
|
||||||
container: Explorer;
|
|
||||||
notebookUrl: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Notebook Viewer tab
|
|
||||||
*/
|
|
||||||
class NotebookViewerComponentAdapter implements ReactAdapter {
|
|
||||||
// parameters: true: show, false: hide
|
|
||||||
public parameters: ko.Computed<boolean>;
|
|
||||||
constructor(private notebookUrl: string) {}
|
|
||||||
|
|
||||||
public renderComponent(): JSX.Element {
|
|
||||||
const props: NotebookViewerComponentProps = {
|
|
||||||
notebookUrl: this.notebookUrl,
|
|
||||||
backNavigationText: undefined,
|
|
||||||
onBackClick: undefined,
|
|
||||||
onTagClick: undefined,
|
|
||||||
};
|
|
||||||
|
|
||||||
return this.parameters() ? <NotebookViewerComponent {...props} /> : <></>;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default class NotebookViewerTab extends TabsBase {
|
|
||||||
public readonly html = '<div style="height: 100%" data-bind="react:notebookViewerComponentAdapter"></div>';
|
|
||||||
private container: Explorer;
|
|
||||||
public notebookUrl: string;
|
|
||||||
|
|
||||||
public notebookViewerComponentAdapter: NotebookViewerComponentAdapter;
|
|
||||||
|
|
||||||
constructor(options: NotebookViewerTabOptions) {
|
|
||||||
super(options);
|
|
||||||
this.container = options.container;
|
|
||||||
this.notebookUrl = options.notebookUrl;
|
|
||||||
|
|
||||||
this.notebookViewerComponentAdapter = new NotebookViewerComponentAdapter(options.notebookUrl);
|
|
||||||
|
|
||||||
this.notebookViewerComponentAdapter.parameters = ko.computed<boolean>(() => {
|
|
||||||
if (this.isTemplateReady() && this.container.isNotebookEnabled()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public getContainer(): Explorer {
|
|
||||||
return this.container;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected getTabsButtons(): CommandButtonComponentProps[] {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
protected buildCommandBarOptions(): void {
|
|
||||||
this.updateNavbarWithTabsButtons();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue