Files
flipper/desktop/app/src/ui/index.tsx
Michel Weststrate fdff6aeae0 Introduce highlight manager, add scroll on highlight
Summary:
Introduced a highlight manager, which prevents drilling the highlight through the entire component tree and causing too many re-renders.

Also smartly optimizes that non-matched highlighted text doesn't render unnecessarily, and debounces the updates.

Finally, automatically scroll to the first highlight.

Reviewed By: jknoxville

Differential Revision: D21348575

fbshipit-source-id: 71f7ba2e981ad3fc1ea7f5e7043645e6b6811fb7
2020-05-04 04:16:27 -07:00

179 lines
7.2 KiB
TypeScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
export {default as styled} from '@emotion/styled';
export {default as Button} from './components/Button';
export {default as ToggleButton} from './components/ToggleSwitch';
export {default as ButtonNavigationGroup} from './components/ButtonNavigationGroup';
export {default as ButtonGroup} from './components/ButtonGroup';
export {default as ButtonGroupChain} from './components/ButtonGroupChain';
export {colors, darkColors, brandColors} from './components/colors';
export {default as Glyph, IconSize} from './components/Glyph';
export {default as LoadingIndicator} from './components/LoadingIndicator';
export {default as Popover} from './components/Popover';
// tables
export {
TableColumns,
TableRows,
TableRows_immutable,
TableBodyColumn,
TableBodyRow,
TableHighlightedRows,
TableRowSortOrder,
TableColumnOrder,
TableColumnOrderVal,
TableColumnSizes,
} from './components/table/types';
export {default as ManagedTable} from './components/table/ManagedTable';
export {ManagedTableProps} from './components/table/ManagedTable';
export {default as ManagedTable_immutable} from './components/table/ManagedTable_immutable';
export {ManagedTableProps_immutable} from './components/table/ManagedTable_immutable';
export {Value} from './components/table/TypeBasedValueRenderer';
export {renderValue} from './components/table/TypeBasedValueRenderer';
export {
DataValueExtractor,
DataInspectorExpanded,
} from './components/data-inspector/DataInspector';
export {default as DataInspector} from './components/data-inspector/DataInspector';
export {default as ManagedDataInspector} from './components/data-inspector/ManagedDataInspector';
export {default as DataDescription} from './components/data-inspector/DataDescription';
// tabs
export {default as Tabs} from './components/Tabs';
export {default as Tab} from './components/Tab';
export {default as TabsContainer} from './components/TabsContainer';
// inputs
export {default as Input} from './components/Input';
export {default as MultiLineInput} from './components/MultiLineInput';
export {default as Textarea} from './components/Textarea';
export {default as Select} from './components/Select';
export {default as Checkbox} from './components/Checkbox';
export {default as Radio} from './components/Radio';
// code
export {default as CodeBlock} from './components/CodeBlock';
// error
export {default as ErrorBlock} from './components/ErrorBlock';
export {ErrorBlockContainer} from './components/ErrorBlock';
export {default as ErrorBoundary} from './components/ErrorBoundary';
// interactive components
export {OrderableOrder} from './components/Orderable';
export {default as Interactive} from './components/Interactive';
export {default as Orderable} from './components/Orderable';
export {default as VirtualList} from './components/VirtualList';
// base components
export {Component, PureComponent} from 'react';
// context menus and dropdowns
export {default as ContextMenuProvider} from './components/ContextMenuProvider';
export {default as ContextMenu} from './components/ContextMenu';
// file
export {FileListFile, FileListFiles} from './components/FileList';
export {default as FileList} from './components/FileList';
export {default as File} from './components/File';
// context menu items
export {
DesktopDropdownItem,
DesktopDropdownSelectedItem,
DesktopDropdown,
} from './components/desktop-toolbar';
// utility elements
export {default as View} from './components/View';
export {default as ViewWithSize} from './components/ViewWithSize';
export {default as Block} from './components/Block';
export {default as FocusableBox} from './components/FocusableBox';
export {default as Sidebar} from './components/Sidebar';
export {default as SidebarLabel} from './components/SidebarLabel';
export {default as Box} from './components/Box';
export {default as FlexBox} from './components/FlexBox';
export {default as FlexRow} from './components/FlexRow';
export {default as FlexColumn} from './components/FlexColumn';
export {default as FlexCenter} from './components/FlexCenter';
export {default as Toolbar, Spacer} from './components/Toolbar';
export {default as ToolbarIcon} from './components/ToolbarIcon';
export {default as Panel} from './components/Panel';
export {default as Text} from './components/Text';
export {default as TextParagraph} from './components/TextParagraph';
export {default as Link} from './components/Link';
export {default as PathBreadcrumbs} from './components/PathBreadcrumbs';
export {default as ModalOverlay} from './components/ModalOverlay';
export {default as Tooltip} from './components/Tooltip';
export {default as TooltipProvider} from './components/TooltipProvider';
export {default as ResizeSensor} from './components/ResizeSensor';
export {default as StatusIndicator} from './components/StatusIndicator';
export {default as Line} from './components/Line';
// typography
export {default as HorizontalRule} from './components/HorizontalRule';
export {default as VerticalRule} from './components/VerticalRule';
export {default as Label} from './components/Label';
export {default as Heading} from './components/Heading';
// filters
export {Filter} from './components/filter/types';
export {default as MarkerTimeline} from './components/MarkerTimeline';
export {default as StackTrace} from './components/StackTrace';
export {
SearchBox,
SearchInput,
SearchIcon,
default as Searchable,
} from './components/searchable/Searchable';
export {default as SearchableTable} from './components/searchable/SearchableTable';
export {default as SearchableTable_immutable} from './components/searchable/SearchableTable_immutable';
export {SearchableProps} from './components/searchable/Searchable';
export {
ElementID,
ElementData,
ElementAttribute,
Element,
ElementSearchResultSet,
ElementsInspectorProps,
} from './components/elements-inspector/ElementsInspector';
export {Elements} from './components/elements-inspector/elements';
export {ContextMenuExtension} from './components/elements-inspector/elements';
export {default as ElementsInspector} from './components/elements-inspector/ElementsInspector';
export {InspectorSidebar} from './components/elements-inspector/sidebar';
export {VisualizerPortal} from './components/elements-inspector/Visualizer';
export {Console} from './components/console';
export {default as Sheet} from './components/Sheet';
export {StarButton} from './components/StarButton';
export {Markdown} from './components/Markdown';
export {default as VBox} from './components/VBox';
export {default as HBox} from './components/HBox';
export {default as SmallText} from './components/SmallText';
export {default as Labeled} from './components/Labeled';
export {default as RoundedSection} from './components/RoundedSection';
export {default as CenteredView} from './components/CenteredView';
export {default as Info} from './components/Info';
export {default as Bordered} from './components/Bordered';
export {default as AlternatingRows} from './components/AlternatingRows';
export {default as Layout} from './components/Layout';
export * from './components/Highlight';