From 2dde6720453ebfcac829a1eed45e90bf73b1688e Mon Sep 17 00:00:00 2001 From: Lorenzo Blasa Date: Fri, 10 Mar 2023 06:18:21 -0800 Subject: [PATCH] Events tab Summary: Add a frameworks events tab. This is currently using the `TimelineDataDescription` component which may ultimately be replaced by something more sophisticated. In the meanwhile, this does the job of chronologically displaying events with a label. Reviewed By: mweststrate Differential Revision: D43948891 fbshipit-source-id: 31ebf8a1d0e126856c3aa5291a1a06d7f2547233 --- .../components/sidebar/Inspector.tsx | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/desktop/plugins/public/ui-debugger/components/sidebar/Inspector.tsx b/desktop/plugins/public/ui-debugger/components/sidebar/Inspector.tsx index 038c728bb..a3892f0b9 100644 --- a/desktop/plugins/public/ui-debugger/components/sidebar/Inspector.tsx +++ b/desktop/plugins/public/ui-debugger/components/sidebar/Inspector.tsx @@ -10,7 +10,16 @@ import React from 'react'; // eslint-disable-next-line rulesdir/no-restricted-imports-clone import {Glyph} from 'flipper'; -import {Layout, Tab, Tabs, theme, usePlugin, useValue} from 'flipper-plugin'; +import { + Layout, + Tab, + Tabs, + theme, + usePlugin, + useValue, + TimelineDataDescription, +} from 'flipper-plugin'; + import {Id, Metadata, MetadataId, UINode} from '../../types'; import {IdentityInspector} from './inspector/IdentityInspector'; @@ -27,11 +36,17 @@ type Props = { export const Inspector: React.FC = ({nodes, metadata}) => { const instance = usePlugin(plugin); const selectedNodeId = useValue(instance.uiState.selectedNode); + const frameworkEvents = useValue(instance.frameworkEvents); - const selectedNode = nodes.get(selectedNodeId!!); + const selectedNode = selectedNodeId ? nodes.get(selectedNodeId) : undefined; if (!selectedNode) { return ; } + + const events = selectedNodeId + ? frameworkEvents?.get(selectedNodeId) + : undefined; + return ( @@ -78,6 +93,34 @@ export const Inspector: React.FC = ({nodes, metadata}) => { metadata={metadata} /> + {events && ( + + + + + + }> + { + return { + moment: e.timestamp, + display: e.type, + color: theme.primaryColor, + key: e.timestamp.toString(), + }; + }), + current: '', + }} + /> + + )} );