MCPcopy Create free account
hub / github.com/ajsmth/rn-tools / buildRenderTreeDebugTree

Function buildRenderTreeDebugTree

packages/core/src/render-tree.tsx:155–192  ·  view source on GitHub ↗
(
  chart: RenderTreeState,
)

Source from the content-addressed store, hash-verified

153}
154
155export function buildRenderTreeDebugTree(
156 chart: RenderTreeState,
157): RenderTreeDebugNode | null {
158 const root = chart.nodes.get(RENDER_TREE_ROOT_ID_OLD);
159 if (!root) {
160 return null;
161 }
162
163 const visited = new Set<string>();
164
165 const buildNode = (node: RenderNode): RenderTreeDebugNode => {
166 if (visited.has(node.id)) {
167 return {
168 id: node.id,
169 type: node.type,
170 parentId: node.parentId,
171 active: getRenderNodeActive(chart, node.id),
172 depth: getRenderNodeDepth(chart, node.id),
173 children: [],
174 };
175 }
176 visited.add(node.id);
177
178 return {
179 id: node.id,
180 type: node.type,
181 parentId: node.parentId,
182 active: getRenderNodeActive(chart, node.id),
183 depth: getRenderNodeDepth(chart, node.id),
184 children: node.children
185 .map((childId) => chart.nodes.get(childId))
186 .filter((child): child is RenderNode => Boolean(child))
187 .map((child) => buildNode(child)),
188 };
189 };
190
191 return buildNode(root);
192}
193
194export function logRenderTreeDebugTree(
195 chart: RenderTreeState,

Callers 1

logRenderTreeDebugTreeFunction · 0.85

Calls 1

buildNodeFunction · 0.85

Tested by

no test coverage detected