Dont auto expand nodes

Summary:
Rather than automatically collapsing siblings when using the visualiser instead we take a different approach:
1. The tree starts out fully collapsed
2. Every time you click on the visualiser we expand it and its ancestory chain to expanded nodes.

This is exactly how the Dom inspector works. The previous approach of constantly collapsing all siblings when uinsg the visualiser felt too intrusive and taking control from the user. The option is still there but only in the context menu

Some ultilities around autocollapsing nodes were removed as they dont make sense anymore that we now send complete frames

Changelog: UIDebugger Tree starts collapsed and expands as you click from the visualiser

Reviewed By: aigoncharov

Differential Revision: D47949843

fbshipit-source-id: 4381d22b12874dde5a89267572bee95f084380e3
This commit is contained in:
Luke De Feo
2023-08-01 10:32:29 -07:00
committed by Facebook GitHub Bot
parent ce1fdfdf19
commit 795d1de10d
5 changed files with 14 additions and 59 deletions

View File

@@ -31,10 +31,7 @@ import {
} from './DesktopTypes';
import {getStreamInterceptor} from './fb-stubs/StreamInterceptor';
import {prefetchSourceFileLocation} from './components/fb-stubs/IDEContextMenu';
import {
checkFocusedNodeStillActive,
collapseinActiveChildren,
} from './plugin/ClientDataUtils';
import {checkFocusedNodeStillActive} from './plugin/ClientDataUtils';
import {uiActions} from './plugin/uiActions';
type PendingData = {
@@ -67,10 +64,6 @@ export function plugin(client: PluginClient<Events>) {
limit: 10 * 1024,
});
//this keeps track of all node ids we have seen so we dont keep reexpanding nodes when they come in again.
//Could probably be removed if we refactor the nodes to be expanded by default and only collapsed is toggled on
const seenNodes = new Set<Id>();
//this holds pending any pending data that needs to be applied in the event of a stream interceptor error
//while in the error state more metadata or a more recent frame may come in so both cases need to apply the same darta
const pendingData: PendingData = {frame: null, metadata: {}};
@@ -279,21 +272,6 @@ export function plugin(client: PluginClient<Events>) {
}
mutableLiveClientData.nodes = nodes;
uiState.expandedNodes.update((draft) => {
for (const node of nodes.values()) {
if (!seenNodes.has(node.id)) {
draft.add(node.id);
}
seenNodes.add(node.id);
if (!uiState.isPaused.get()) {
//we need to not do this while paused as you may move to another screen / tab
//and it would collapse the tree node for the activity you were paused on.
collapseinActiveChildren(node, draft);
}
}
});
if (!uiState.isPaused.get()) {
nodesAtom.set(mutableLiveClientData.nodes);
snapshot.set(mutableLiveClientData.snapshotInfo);