MCPcopy Index your code
hub / github.com/wavetermdev/waveterm / constructor

Method constructor

frontend/layout/lib/layoutModel.ts:240–355  ·  view source on GitHub ↗
(
        tabAtom: Atom<Tab>,
        getter: Getter,
        setter: Setter,
        renderContent?: ContentRenderer,
        renderPreview?: PreviewRenderer,
        onNodeDelete?: (data: TabLayoutData) => Promise<void>,
        gapSizePx?: number,
        animationTimeS?: number
    )

Source from the content-addressed store, hash-verified

238 private isContainerResizing: PrimitiveAtom<boolean>;
239
240 constructor(
241 tabAtom: Atom<Tab>,
242 getter: Getter,
243 setter: Setter,
244 renderContent?: ContentRenderer,
245 renderPreview?: PreviewRenderer,
246 onNodeDelete?: (data: TabLayoutData) => Promise<void>,
247 gapSizePx?: number,
248 animationTimeS?: number
249 ) {
250 this.tabAtom = tabAtom;
251 this.getter = getter;
252 this.setter = setter;
253 this.renderContent = renderContent;
254 this.renderPreview = renderPreview;
255 this.onNodeDelete = onNodeDelete;
256 this.gapSizePx = atom(gapSizePx ?? DefaultGapSizePx);
257 this.resizeHandleSizePx = atom((get) => {
258 const gapSizePx = get(this.gapSizePx);
259 return 2 * (gapSizePx > 5 ? gapSizePx : DefaultGapSizePx);
260 });
261 this.animationTimeS = atom(animationTimeS ?? DefaultAnimationTimeS);
262 this.persistDebounceTimer = null;
263 this.processedActionIds = new Set();
264
265 this.waveObjectAtom = getLayoutStateAtomFromTab(tabAtom, getter);
266
267 this.localTreeStateAtom = atom<LayoutTreeState>({
268 rootNode: undefined,
269 focusedNodeId: undefined,
270 magnifiedNodeId: undefined,
271 leafOrder: undefined,
272 pendingBackendActions: undefined,
273 });
274
275 this.treeState = {
276 rootNode: undefined,
277 focusedNodeId: undefined,
278 magnifiedNodeId: undefined,
279 leafOrder: undefined,
280 pendingBackendActions: undefined,
281 };
282
283 this.leafs = atom([]);
284 this.leafOrder = atom([]);
285 this.numLeafs = atom((get) => get(this.leafOrder).length);
286
287 this.nodeModels = new Map();
288 this.additionalProps = atom({});
289
290 const resizeHandleListAtom = atom((get) => {
291 const addlProps = get(this.additionalProps);
292 return Object.values(addlProps)
293 .flatMap((props) => props.resizeHandles)
294 .filter((v) => v);
295 });
296 this.resizeHandles = splitAtom(resizeHandleListAtom);
297 this.isContainerResizing = atom(false);

Callers

nothing calls this directly

Calls 7

setTransformFunction · 0.90
getSettingsKeyAtomFunction · 0.90
findNodeFunction · 0.90
atomWithThrottleFunction · 0.90

Tested by

no test coverage detected