Tooltip for node type icon

Reviewed By: aigoncharov

Differential Revision: D51307310

fbshipit-source-id: 9a522928102de6a28c0307568451acaed969edc5
This commit is contained in:
Luke De Feo
2023-11-14 08:40:48 -08:00
committed by Facebook GitHub Bot
parent 6c4c579f27
commit 0889a0e02d

View File

@@ -30,7 +30,7 @@ import {
} from 'flipper-plugin'; } from 'flipper-plugin';
import {plugin} from '../../index'; import {plugin} from '../../index';
import {head, last} from 'lodash'; import {head, last} from 'lodash';
import {Badge, Typography} from 'antd'; import {Badge, Tooltip, Typography} from 'antd';
import {useVirtualizer} from '@tanstack/react-virtual'; import {useVirtualizer} from '@tanstack/react-virtual';
import {ContextMenu} from './ContextMenu'; import {ContextMenu} from './ContextMenu';
@@ -577,33 +577,52 @@ function HighlightedText(props: {text: string}) {
} }
function nodeIcon(node: TreeNode) { function nodeIcon(node: TreeNode) {
const [icon, tooltip] = nodeData(node);
const iconComp =
typeof icon === 'string' ? <NodeIconImage src={icon} /> : icon;
if (tooltip == null) {
return iconComp;
} else {
return <Tooltip title={tooltip}>{iconComp}</Tooltip>;
}
}
function nodeData(node: TreeNode) {
if (node.tags.includes('LithoMountable')) { if (node.tags.includes('LithoMountable')) {
return <NodeIconImage src="icons/litho-logo-blue.png" />; return ['icons/litho-logo-blue.png', 'Litho Mountable (Primitive)'];
} else if (node.tags.includes('Litho')) { } else if (node.tags.includes('Litho')) {
return <NodeIconImage src="icons/litho-logo.png" />; return ['icons/litho-logo.png', 'Litho Component'];
} else if (node.tags.includes('CK')) { } else if (node.tags.includes('CK')) {
if (node.tags.includes('iOS')) { if (node.tags.includes('iOS')) {
return <NodeIconImage src="icons/ck-mounted-logo.png" />; return ['icons/ck-mounted-logo.png', 'CK Mounted Component'];
} }
return <NodeIconImage src="icons/ck-logo.png" />; return ['icons/ck-logo.png', 'CK Component'];
} else if (node.tags.includes('BloksBoundTree')) { } else if (node.tags.includes('BloksBoundTree')) {
return <NodeIconImage src="facebook/bloks-logo-orange.png" />; return ['facebook/bloks-logo-orange.png', 'Bloks Bridged component'];
} else if (node.tags.includes('BloksDerived')) { } else if (node.tags.includes('BloksDerived')) {
return <NodeIconImage src="facebook/bloks-logo-blue.png" />; return ['facebook/bloks-logo-blue.png', 'Bloks Derived (Server) component'];
} else if (node.tags.includes('Warning')) { } else if (node.tags.includes('Warning')) {
return ( return [
<WarningOutlined style={{...nodeiconStyle, color: theme.errorColor}} /> <WarningOutlined
); key="0"
style={{...nodeiconStyle, color: theme.errorColor}}
/>,
null,
];
} else { } else {
return ( return [
<div <div
key="0"
style={{ style={{
height: NodeIconSize, height: NodeIconSize,
width: 0, width: 0,
marginRight: IconRightMargin, marginRight: IconRightMargin,
}} }}
/> />,
); null,
];
} }
} }