diff --git a/desktop/app/src/index.tsx b/desktop/app/src/index.tsx index adeefc670..6f60ccdc5 100644 --- a/desktop/app/src/index.tsx +++ b/desktop/app/src/index.tsx @@ -103,7 +103,7 @@ export { default as DataDescription, DataDescriptionType, } from './ui/components/data-inspector/DataDescription'; -export {HighlightManager} from './ui/components/Highlight'; +export {_HighlightManager as HighlightManager} from 'flipper-plugin'; export {default as Tabs} from './ui/components/Tabs'; export {default as Tab} from './ui/components/Tab'; export {default as Input} from './ui/components/Input'; diff --git a/desktop/app/src/ui/components/data-inspector/DataDescription.tsx b/desktop/app/src/ui/components/data-inspector/DataDescription.tsx index 90d764e21..2a4b4a865 100644 --- a/desktop/app/src/ui/components/data-inspector/DataDescription.tsx +++ b/desktop/app/src/ui/components/data-inspector/DataDescription.tsx @@ -17,7 +17,7 @@ import {colors} from '../colors'; import Input from '../Input'; import React, {KeyboardEvent} from 'react'; import Glyph from '../Glyph'; -import {HighlightContext} from '../Highlight'; +import {_HighlightContext} from 'flipper-plugin'; import Select from '../Select'; import TimelineDataDescription from './TimelineDataDescription'; @@ -575,8 +575,8 @@ class DataDescriptionContainer extends PureComponent<{ editable: boolean; commit: (opts: DescriptionCommitOptions) => void; }> { - static contextType = HighlightContext; // Replace with useHighlighter - context!: React.ContextType; + static contextType = _HighlightContext; // Replace with useHighlighter + context!: React.ContextType; onChangeCheckbox = (e: React.ChangeEvent) => { this.props.commit({ diff --git a/desktop/app/src/ui/components/data-inspector/DataInspector.tsx b/desktop/app/src/ui/components/data-inspector/DataInspector.tsx index fe43ef6ea..7e6154e1f 100644 --- a/desktop/app/src/ui/components/data-inspector/DataInspector.tsx +++ b/desktop/app/src/ui/components/data-inspector/DataInspector.tsx @@ -21,7 +21,10 @@ import {colors} from '../colors'; import {clipboard} from 'electron'; import React from 'react'; import {TooltipOptions} from '../TooltipProvider'; -import {useHighlighter, HighlightManager} from '../Highlight'; +import { + _useHighlighter as useHighlighter, + _HighlightManager, +} from 'flipper-plugin'; export {DataValueExtractor} from './DataPreview'; @@ -142,7 +145,7 @@ type DataInspectorProps = { onRenderName?: ( path: Array, name: string, - highlighter: HighlightManager, + highlighter: _HighlightManager, ) => React.ReactElement; /** * Render callback that can be used to customize the rendering of object values. diff --git a/desktop/app/src/ui/components/data-inspector/ManagedDataInspector.tsx b/desktop/app/src/ui/components/data-inspector/ManagedDataInspector.tsx index cb1cf6bf6..169df6b3e 100644 --- a/desktop/app/src/ui/components/data-inspector/ManagedDataInspector.tsx +++ b/desktop/app/src/ui/components/data-inspector/ManagedDataInspector.tsx @@ -12,7 +12,7 @@ import {PureComponent} from 'react'; import DataInspector from './DataInspector'; import React from 'react'; import {DataValueExtractor} from './DataPreview'; -import {HighlightProvider, HighlightManager} from '../Highlight'; +import {_HighlightProvider, _HighlightManager} from 'flipper-plugin'; export type ManagedDataInspectorProps = { /** @@ -47,7 +47,7 @@ export type ManagedDataInspectorProps = { onRenderName?: ( path: Array, name: string, - highlighter: HighlightManager, + highlighter: _HighlightManager, ) => React.ReactElement; /** * Render callback that can be used to customize the rendering of object values. @@ -173,7 +173,7 @@ export default class ManagedDataInspector extends PureComponent< render() { return ( - + <_HighlightProvider text={this.props.filter}> - + ); } } diff --git a/desktop/app/src/ui/components/data-inspector/__tests__/DataInspector.node.tsx b/desktop/app/src/ui/components/data-inspector/__tests__/DataInspector.node.tsx index 6a08c32cf..f8c346c37 100644 --- a/desktop/app/src/ui/components/data-inspector/__tests__/DataInspector.node.tsx +++ b/desktop/app/src/ui/components/data-inspector/__tests__/DataInspector.node.tsx @@ -124,7 +124,7 @@ test('can filter for data', async () => { "j son diff --git a/desktop/app/src/ui/index.tsx b/desktop/app/src/ui/index.tsx index f0a4332a3..5fc5300b1 100644 --- a/desktop/app/src/ui/index.tsx +++ b/desktop/app/src/ui/index.tsx @@ -180,4 +180,3 @@ export {default as AlternatingRows} from './components/AlternatingRows'; export {Layout} from 'flipper-plugin'; export {default as Scrollable} from './components/Scrollable'; -export * from './components/Highlight'; diff --git a/desktop/flipper-plugin/src/index.ts b/desktop/flipper-plugin/src/index.ts index 40941e3c7..f01a7a6e8 100644 --- a/desktop/flipper-plugin/src/index.ts +++ b/desktop/flipper-plugin/src/index.ts @@ -85,6 +85,13 @@ export {createDataSource, DataSource} from './state/DataSource'; export {DataTable, DataTableColumn} from './ui/data-table/DataTable'; export {DataTableManager} from './ui/data-table/DataTableManager'; +export { + HighlightContext as _HighlightContext, + HighlightProvider as _HighlightProvider, + HighlightManager as _HighlightManager, + useHighlighter as _useHighlighter, +} from './ui/Highlight'; + export { Interactive as _Interactive, InteractiveProps as _InteractiveProps, diff --git a/desktop/app/src/ui/components/Highlight.tsx b/desktop/flipper-plugin/src/ui/Highlight.tsx similarity index 94% rename from desktop/app/src/ui/components/Highlight.tsx rename to desktop/flipper-plugin/src/ui/Highlight.tsx index 53ea97135..2a91ab4df 100644 --- a/desktop/app/src/ui/components/Highlight.tsx +++ b/desktop/flipper-plugin/src/ui/Highlight.tsx @@ -8,20 +8,19 @@ */ import styled from '@emotion/styled'; -import {colors} from './colors'; import React, { useEffect, memo, useState, useRef, - useMemo, createContext, useContext, } from 'react'; import {debounce} from 'lodash'; +import {theme} from './theme'; const Highlighted = styled.span({ - backgroundColor: colors.lemon, + backgroundColor: theme.textColorActive, }); export interface HighlightManager { @@ -108,11 +107,11 @@ export function HighlightProvider({ text: string | undefined; children: React.ReactElement; }) { - const highlightManager = useMemo(() => createHighlightManager(text), []); + const [highlightManager] = useState(() => createHighlightManager(text)); useEffect(() => { highlightManager.setFilter(text); - }, [text]); + }, [text, highlightManager]); return (