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

Class LayoutModel

frontend/layout/lib/layoutModel.ts:76–1570  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

74const DefaultAnimationTimeS = 0.15;
75
76export class LayoutModel {
77 /**
78 * Local atom holding the current tree state (source of truth during runtime)
79 */
80 private localTreeStateAtom: PrimitiveAtom<LayoutTreeState>;
81 /**
82 * The tree state (local cache)
83 */
84 treeState: LayoutTreeState;
85 /**
86 * Reference to the tab atom for accessing WaveObject
87 */
88 private tabAtom: Atom<Tab>;
89 /**
90 * WaveObject atom for persistence
91 */
92 private waveObjectAtom: Atom<LayoutState>;
93 /**
94 * Debounce timer for persistence
95 */
96 private persistDebounceTimer: NodeJS.Timeout | null;
97 /**
98 * Set of action IDs that have been processed (prevents duplicate processing)
99 */
100 private processedActionIds: Set<string>;
101 /**
102 * The jotai getter that is used to read atom values.
103 */
104 getter: Getter;
105 /**
106 * The jotai setter that is used to update atom values.
107 */
108 setter: Setter;
109 /**
110 * Callback that is invoked to render the block associated with a leaf node.
111 */
112 renderContent?: ContentRenderer;
113 /**
114 * Callback that is invoked to render the drag preview for a leaf node.
115 */
116 renderPreview?: PreviewRenderer;
117 /**
118 * Callback that is invoked when a node is closed.
119 */
120 onNodeDelete?: (data: TabLayoutData) => Promise<void>;
121 /**
122 * The size of the gap between nodes in CSS pixels.
123 */
124 gapSizePx: PrimitiveAtom<number>;
125
126 /**
127 * The time a transition animation takes, in seconds.
128 */
129 animationTimeS: PrimitiveAtom<number>;
130
131 /**
132 * List of nodes that are leafs and should be rendered as a DisplayNode.
133 */

Callers

nothing calls this directly

Calls 1

updateTreeMethod · 0.95

Tested by

no test coverage detected