workspaces -- part 1

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman committed 2020-07-22 12:06:58 +03:00
1 parent 012ef0419f
commit c70ed87da9
10 files changed
+269 -181

No files matched your search

+12 -3
View File
@@ -41,10 +41,19 @@ export class WorkspaceStore extends BaseStore<WorkspaceStoreModel> {
return Array.from(this.workspaces.values());
}
isDefault(id: WorkspaceId) {
return id === WorkspaceStore.defaultId;
}
getById(id: WorkspaceId): Workspace {
return this.workspaces.get(id);
}
@action
setActive(id = WorkspaceStore.defaultId) {
this.currentWorkspaceId = id;
}
@action
public saveWorkspace(workspace: Workspace) {
const id = workspace.id;
@@ -60,11 +69,11 @@ export class WorkspaceStore extends BaseStore<WorkspaceStoreModel> {
public removeWorkspace(id: WorkspaceId) {
const workspace = this.getById(id);
if (!workspace) return;
if (id === WorkspaceStore.defaultId) {
if (this.isDefault(id)) {
throw new Error("Cannot remove default workspace");
}
if (id === this.currentWorkspaceId) {
this.currentWorkspaceId = WorkspaceStore.defaultId;
if (this.currentWorkspaceId === id) {
this.currentWorkspaceId = WorkspaceStore.defaultId; // reset to default
}
this.workspaces.delete(id);
clusterStore.removeByWorkspaceId(id)