MCPcopy
hub / github.com/wavetermdev/waveterm / getLayoutModelForTab

Function getLayoutModelForTab

frontend/layout/lib/layoutModelHooks.ts:15–37  ·  view source on GitHub ↗
(tabAtom: Atom<Tab>)

Source from the content-addressed store, hash-verified

13const layoutModelMap: Map<string, LayoutModel> = new Map();
14
15function getLayoutModelForTab(tabAtom: Atom<Tab>): LayoutModel {
16 const tabData = globalStore.get(tabAtom);
17 if (!tabData) return;
18 const tabId = tabData.oid;
19 if (layoutModelMap.has(tabId)) {
20 const layoutModel = layoutModelMap.get(tabData.oid);
21 if (layoutModel) {
22 return layoutModel;
23 }
24 }
25 const layoutModel = new LayoutModel(tabAtom, globalStore.get, globalStore.set);
26
27 const staticTabId = globalStore.get(atoms.staticTabId);
28 if (tabId === staticTabId) {
29 const layoutStateAtom = getLayoutStateAtomFromTab(tabAtom, globalStore.get);
30 globalStore.sub(layoutStateAtom, () => {
31 layoutModel.onBackendUpdate();
32 });
33 }
34
35 layoutModelMap.set(tabId, layoutModel);
36 return layoutModel;
37}
38
39function getLayoutModelForTabById(tabId: string) {
40 const tabOref = WOS.makeORef("tab", tabId);

Callers 2

getLayoutModelForTabByIdFunction · 0.85
useLayoutModelFunction · 0.85

Calls 4

onBackendUpdateMethod · 0.95
getMethod · 0.80
setMethod · 0.80

Tested by

no test coverage detected