/** * 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, {useState} from 'react'; import {plugin} from '../index'; import { DetailSidebar, Layout, usePlugin, useValue, _Sidebar as ResizablePanel, } from 'flipper-plugin'; import {useHotkeys} from 'react-hotkeys-hook'; import {Id, Metadata, MetadataId, UINode} from '../types'; import {PerfStats} from './PerfStats'; import {Visualization2D} from './Visualization2D'; import {useKeyboardModifiers} from '../hooks/useKeyboardModifiers'; import {Inspector} from './sidebar/Inspector'; import {Controls} from './Controls'; import {Spin} from 'antd'; import {QueryClientProvider} from 'react-query'; import {Tree2} from './Tree'; export function Component() { const instance = usePlugin(plugin); const rootId = useValue(instance.rootId); const visualiserWidth = useValue(instance.uiState.visualiserWidth); const nodes: Map = useValue(instance.nodes); const metadata: Map = useValue(instance.metadata); const [showPerfStats, setShowPerfStats] = useState(false); useHotkeys('ctrl+i', () => setShowPerfStats((show) => !show)); const {ctrlPressed} = useKeyboardModifiers(); if (showPerfStats) return ; if (rootId) { return ( { instance.uiActions.setVisualiserWidth(width); }} gutter> ); } return ( ); } export function Centered(props: {children: React.ReactNode}) { return ( {props.children} ); }