mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-19 00:41:31 +00:00
Move databases to zustand (#898)
This commit is contained in:
@@ -33,6 +33,7 @@ import MongoShellTab from "../Tabs/MongoShellTab";
|
||||
import { NewQueryTab } from "../Tabs/QueryTab/QueryTab";
|
||||
import QueryTablesTab from "../Tabs/QueryTablesTab";
|
||||
import { CollectionSettingsTabV2 } from "../Tabs/SettingsTabV2";
|
||||
import { useDatabases } from "../useDatabases";
|
||||
import ConflictId from "./ConflictId";
|
||||
import DocumentId from "./DocumentId";
|
||||
import StoredProcedure from "./StoredProcedure";
|
||||
@@ -1153,7 +1154,7 @@ export default class Collection implements ViewModels.Collection {
|
||||
}
|
||||
|
||||
public getDatabase(): ViewModels.Database {
|
||||
return this.container.findDatabaseWithId(this.databaseId);
|
||||
return useDatabases.getState().findDatabaseWithId(this.databaseId);
|
||||
}
|
||||
|
||||
public async loadOffer(): Promise<void> {
|
||||
|
||||
@@ -9,6 +9,7 @@ import Explorer from "../Explorer";
|
||||
import DocumentsTab from "../Tabs/DocumentsTab";
|
||||
import { NewQueryTab } from "../Tabs/QueryTab/QueryTab";
|
||||
import TabsBase from "../Tabs/TabsBase";
|
||||
import { useDatabases } from "../useDatabases";
|
||||
import DocumentId from "./DocumentId";
|
||||
|
||||
export default class ResourceTokenCollection implements ViewModels.CollectionBase {
|
||||
@@ -151,6 +152,6 @@ export default class ResourceTokenCollection implements ViewModels.CollectionBas
|
||||
}
|
||||
|
||||
public getDatabase(): ViewModels.Database {
|
||||
return this.container.findDatabaseWithId(this.databaseId);
|
||||
return useDatabases.getState().findDatabaseWithId(this.databaseId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import { mostRecentActivity } from "../MostRecentActivity/MostRecentActivity";
|
||||
import { NotebookContentItem, NotebookContentItemType } from "../Notebook/NotebookContentItem";
|
||||
import { NotebookUtil } from "../Notebook/NotebookUtil";
|
||||
import TabsBase from "../Tabs/TabsBase";
|
||||
import { useDatabases } from "../useDatabases";
|
||||
import StoredProcedure from "./StoredProcedure";
|
||||
import Trigger from "./Trigger";
|
||||
import UserDefinedFunction from "./UserDefinedFunction";
|
||||
@@ -66,15 +67,18 @@ export class ResourceTreeAdapter implements ReactAdapter {
|
||||
this.koSubsCollectionIdMap = new ArrayHashMap();
|
||||
this.databaseCollectionIdMap = new ArrayHashMap();
|
||||
|
||||
this.container.databases.subscribe((databases: ViewModels.Database[]) => {
|
||||
// Clean up old databases
|
||||
this.cleanupDatabasesKoSubs();
|
||||
useDatabases.subscribe(
|
||||
(databases: ViewModels.Database[]) => {
|
||||
// Clean up old databases
|
||||
this.cleanupDatabasesKoSubs();
|
||||
|
||||
databases.forEach((database: ViewModels.Database) => this.watchDatabase(database));
|
||||
this.triggerRender();
|
||||
});
|
||||
databases.forEach((database: ViewModels.Database) => this.watchDatabase(database));
|
||||
this.triggerRender();
|
||||
},
|
||||
(state) => state.databases
|
||||
);
|
||||
|
||||
this.container.databases().forEach((database: ViewModels.Database) => this.watchDatabase(database));
|
||||
useDatabases.getState().databases.forEach((database: ViewModels.Database) => this.watchDatabase(database));
|
||||
this.triggerRender();
|
||||
}
|
||||
|
||||
@@ -192,7 +196,7 @@ export class ResourceTreeAdapter implements ReactAdapter {
|
||||
}
|
||||
|
||||
private buildDataTree(): TreeNode {
|
||||
const databaseTreeNodes: TreeNode[] = this.container.databases().map((database: ViewModels.Database) => {
|
||||
const databaseTreeNodes: TreeNode[] = useDatabases.getState().databases.map((database: ViewModels.Database) => {
|
||||
const databaseNode: TreeNode = {
|
||||
label: database.id(),
|
||||
iconSrc: CosmosDBIcon,
|
||||
@@ -882,7 +886,7 @@ export class ResourceTreeAdapter implements ReactAdapter {
|
||||
this.addKoSubToCollectionId(
|
||||
databaseId,
|
||||
collection.id(),
|
||||
collection.storedProcedures.subscribe(() => {
|
||||
collection.storedProcedures?.subscribe(() => {
|
||||
this.triggerRender();
|
||||
})
|
||||
);
|
||||
@@ -890,7 +894,7 @@ export class ResourceTreeAdapter implements ReactAdapter {
|
||||
this.addKoSubToCollectionId(
|
||||
databaseId,
|
||||
collection.id(),
|
||||
collection.isCollectionExpanded.subscribe(() => {
|
||||
collection.isCollectionExpanded?.subscribe(() => {
|
||||
this.triggerRender();
|
||||
})
|
||||
);
|
||||
@@ -898,7 +902,7 @@ export class ResourceTreeAdapter implements ReactAdapter {
|
||||
this.addKoSubToCollectionId(
|
||||
databaseId,
|
||||
collection.id(),
|
||||
collection.isStoredProceduresExpanded.subscribe(() => {
|
||||
collection.isStoredProceduresExpanded?.subscribe(() => {
|
||||
this.triggerRender();
|
||||
})
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user