/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format */ import React, {ReactNode} from 'react'; // eslint-disable-next-line rulesdir/no-restricted-imports-clone import {Glyph} from 'flipper'; import { DeviceOS, Layout, Tab, Tabs, theme, usePlugin, useValue, } from 'flipper-plugin'; import {Id, Metadata, MetadataId, UINode} from '../../ClientTypes'; import {IdentityInspector} from './inspector/IdentityInspector'; import {AttributesInspector} from './inspector/AttributesInspector'; import {Tooltip} from 'antd'; import {NoData} from './inspector/NoData'; import {plugin} from '../../index'; import {FrameworkEventsInspector} from './inspector/FrameworkEventsInspector'; type Props = { os: DeviceOS; nodes: Map; metadata: Map; showExtra: (element: ReactNode) => void; }; export const Inspector: React.FC = ({ os, nodes, metadata, showExtra, }) => { const instance = usePlugin(plugin); const selectedNodeId = useValue(instance.uiState.selectedNode)?.id; const selectedNode = selectedNodeId ? nodes.get(selectedNodeId) : undefined; if (!selectedNode) { return ; } const selectedFrameworkEvents = selectedNodeId ? instance.frameworkEvents.getAllRecordsByIndex({nodeId: selectedNodeId}) : []; return ( }> }> {os !== 'Android' && ( }> )} {selectedFrameworkEvents?.length > 0 && ( }> )} ); };