mirror of
https://github.com/wavetermdev/backup.git
synced 2026-08-05 13:57:07 -07:00
Establish wlayout for coordinating backend layout actions (#282)
This commit is contained in:
@@ -7,13 +7,11 @@ import {
|
||||
getLayoutModelForTabById,
|
||||
LayoutTreeActionType,
|
||||
LayoutTreeInsertNodeAction,
|
||||
LayoutTreeInsertNodeAtIndexAction,
|
||||
newLayoutNode,
|
||||
} from "@/layout/index";
|
||||
import { getWebServerEndpoint, getWSServerEndpoint } from "@/util/endpoints";
|
||||
import { fetch } from "@/util/fetchutil";
|
||||
import * as util from "@/util/util";
|
||||
import { fireAndForget } from "@/util/util";
|
||||
import * as jotai from "jotai";
|
||||
import * as rxjs from "rxjs";
|
||||
import { modalsModel } from "./modalmodel";
|
||||
@@ -360,56 +358,6 @@ function handleWSEventMessage(msg: WSEventType) {
|
||||
handleIncomingRpcMessage(rpcMsg, handleWaveEvent);
|
||||
return;
|
||||
}
|
||||
if (msg.eventtype == "layoutaction") {
|
||||
const layoutAction: LayoutActionData = msg.data;
|
||||
const tabId = layoutAction.tabid;
|
||||
const layoutModel = getLayoutModelForTabById(tabId);
|
||||
switch (layoutAction.actiontype) {
|
||||
case LayoutTreeActionType.InsertNode: {
|
||||
const insertNodeAction: LayoutTreeInsertNodeAction = {
|
||||
type: LayoutTreeActionType.InsertNode,
|
||||
node: newLayoutNode(undefined, undefined, undefined, {
|
||||
blockId: layoutAction.blockid,
|
||||
}),
|
||||
magnified: layoutAction.magnified,
|
||||
};
|
||||
layoutModel.treeReducer(insertNodeAction);
|
||||
break;
|
||||
}
|
||||
case LayoutTreeActionType.DeleteNode: {
|
||||
const leaf = layoutModel?.getNodeByBlockId(layoutAction.blockid);
|
||||
if (leaf) {
|
||||
fireAndForget(() => layoutModel.closeNode(leaf.id));
|
||||
} else {
|
||||
console.error(
|
||||
"Cannot apply eventbus layout action DeleteNode, could not find leaf node with blockId",
|
||||
layoutAction.blockid
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LayoutTreeActionType.InsertNodeAtIndex: {
|
||||
if (!layoutAction.indexarr) {
|
||||
console.error("Cannot apply eventbus layout action InsertNodeAtIndex, indexarr field is missing.");
|
||||
break;
|
||||
}
|
||||
const insertAction: LayoutTreeInsertNodeAtIndexAction = {
|
||||
type: LayoutTreeActionType.InsertNodeAtIndex,
|
||||
node: newLayoutNode(undefined, layoutAction.nodesize, undefined, {
|
||||
blockId: layoutAction.blockid,
|
||||
}),
|
||||
indexArr: layoutAction.indexarr,
|
||||
magnified: layoutAction.magnified,
|
||||
};
|
||||
layoutModel.treeReducer(insertAction);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
console.warn("unsupported layout action", layoutAction);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
// we send to two subjects just eventType and eventType|oref
|
||||
// we don't use getORefSubject here because we don't want to create a new subject
|
||||
const eventSubject = eventSubjects.get(msg.eventtype);
|
||||
|
||||
@@ -26,9 +26,6 @@ class ClientServiceType {
|
||||
AgreeTos(): Promise<void> {
|
||||
return WOS.callBackendService("client", "AgreeTos", Array.from(arguments))
|
||||
}
|
||||
BootstrapStarterLayout(): Promise<void> {
|
||||
return WOS.callBackendService("client", "BootstrapStarterLayout", Array.from(arguments))
|
||||
}
|
||||
FocusWindow(arg2: string): Promise<void> {
|
||||
return WOS.callBackendService("client", "FocusWindow", Array.from(arguments))
|
||||
}
|
||||
@@ -103,9 +100,6 @@ class ObjectServiceType {
|
||||
CreateBlock(blockDef: BlockDef, rtOpts: RuntimeOpts): Promise<string> {
|
||||
return WOS.callBackendService("object", "CreateBlock", Array.from(arguments))
|
||||
}
|
||||
CreateBlock_NoUI(arg2: string, arg3: BlockDef, arg4: RuntimeOpts): Promise<Block> {
|
||||
return WOS.callBackendService("object", "CreateBlock_NoUI", Array.from(arguments))
|
||||
}
|
||||
|
||||
// @returns object updates
|
||||
DeleteBlock(blockId: string): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user