Dont allow focusing leaf node

Summary: This mode is useless for leaves

Reviewed By: aigoncharov

Differential Revision: D47949539

fbshipit-source-id: 7f3ae6652ad696e9f550fe5b8f2298a1a3eff329
This commit is contained in:
Luke De Feo
2023-08-01 10:32:29 -07:00
committed by Facebook GitHub Bot
parent 9932d28b2f
commit af7c1c7e74
3 changed files with 24 additions and 6 deletions

View File

@@ -24,6 +24,7 @@ import {head, isEqual, throttle} from 'lodash';
import {useDelay} from '../../hooks/useDelay';
import {Tooltip} from 'antd';
import {TargetModeState, VisualiserControls} from './VisualizerControls';
import {getNode} from '../../utils/map';
export const Visualization2D: React.FC<
{
@@ -149,7 +150,7 @@ export const Visualization2D: React.FC<
onSetWireFrameMode={instance.uiActions.onSetWireFrameMode}
wireFrameMode={wireFrameMode}
focusedNode={focusedNodeId}
selectedNode={selectedNodeId?.id}
selectedNode={getNode(selectedNodeId?.id, nodes)}
setTargetMode={setTargetMode}
targetMode={targetMode}
/>

View File

@@ -9,7 +9,7 @@
import {Button, Dropdown, Menu, Slider, Tooltip, Typography} from 'antd';
import {Layout, produce, theme, usePlugin} from 'flipper-plugin';
import {Id} from '../../ClientTypes';
import {ClientNode, Id} from '../../ClientTypes';
import {plugin} from '../../index';
import React from 'react';
import {
@@ -44,16 +44,18 @@ export function VisualiserControls({
}: {
wireFrameMode: WireFrameMode;
onSetWireFrameMode: (mode: WireFrameMode) => void;
selectedNode?: Id;
selectedNode?: ClientNode;
focusedNode?: Id;
setTargetMode: (targetMode: TargetModeState) => void;
targetMode: TargetModeState;
}) {
const instance = usePlugin(plugin);
const focusDisabled = focusedNode == null && selectedNode == null;
const focusDisabled =
focusedNode == null &&
(selectedNode == null || selectedNode.children.length === 0);
const focusToolTip = focusDisabled
? 'Select a node to focus it'
? 'Select a non leaf node to focus it'
: focusedNode == null
? 'Focus current node'
: 'Remove focus';
@@ -153,7 +155,7 @@ export function VisualiserControls({
disabled={focusDisabled}
onClick={() => {
if (focusedNode == null) {
instance.uiActions.onFocusNode(selectedNode);
instance.uiActions.onFocusNode(selectedNode?.id);
} else {
instance.uiActions.onFocusNode();
}