Summary:
This converts the index file to TypeScript which is used as an export for all plugins. Alongside, I had to fix a couple of errors in various files to make sure everything works correctly.

For plugins using flow, we define an interface which uses the type definition for FlipperPlugin and types all UI components as `any`.

Reviewed By: passy

Differential Revision: D16936890

fbshipit-source-id: dacd9a63a82b9f0bbb530b06072186874cba7b6f
This commit is contained in:
Daniel Büchele
2019-08-22 10:00:00 -07:00
committed by Facebook Github Bot
parent d962bbbfb9
commit 0ec48d4fc9
31 changed files with 581 additions and 495 deletions

View File

@@ -239,7 +239,7 @@ type OwnProps = {
* Whether the button should have additional padding left and right.
*/
padded?: boolean;
};
} & React.HTMLProps<HTMLDivElement>;
type State = {
active: boolean;

View File

@@ -12,7 +12,7 @@ import {MenuItemConstructorOptions} from 'electron';
export type MenuTemplate = Array<MenuItemConstructorOptions>;
type Props = {
type Props<C> = {
/** List of items in the context menu. Used for static menus. */
items?: MenuTemplate;
/** Function to generate the menu. Called right before the menu is showed. Used for dynamic menus. */
@@ -22,7 +22,7 @@ type Props = {
/** The component that is used to wrap the children. Defaults to `FlexColumn`. */
component: React.ComponentType<any> | string;
onMouseDown?: (e: React.MouseEvent) => any;
};
} & C;
/**
* Native context menu that is shown on secondary click.
@@ -31,7 +31,7 @@ type Props = {
*
* Separators can be added by `{type: 'separator'}`
*/
export default class ContextMenu extends React.Component<Props> {
export default class ContextMenu<C = any> extends React.Component<Props<C>> {
static defaultProps = {
component: FlexColumn,
};

View File

@@ -7,7 +7,7 @@
import Link from '../Link';
import {DataInspectorSetValue} from './DataInspector';
import {PureComponent} from 'react';
import styled from '../../styled/index.js';
import styled from 'react-emotion';
import {SketchPicker} from 'react-color';
import {Component, Fragment} from 'react';
import Popover from '../Popover';

View File

@@ -1,185 +0,0 @@
/**
* Copyright 2018-present Facebook.
* 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 'react-emotion';
export {default as Button} from './components/Button.tsx';
export {default as ToggleButton} from './components/ToggleSwitch.tsx';
export {
default as ButtonNavigationGroup,
} from './components/ButtonNavigationGroup.tsx';
export {default as ButtonGroup} from './components/ButtonGroup.tsx';
export {default as ButtonGroupChain} from './components/ButtonGroupChain.tsx';
//
export {colors, darkColors, brandColors} from './components/colors.tsx';
//
export {default as Glyph} from './components/Glyph.tsx';
//
export {default as LoadingIndicator} from './components/LoadingIndicator.tsx';
//
export {default as Popover} from './components/Popover.tsx';
// tables
export type {
TableColumns,
TableRows,
TableRows_immutable,
TableBodyColumn,
TableBodyRow,
TableHighlightedRows,
TableRowSortOrder,
TableColumnOrder,
TableColumnOrderVal,
TableColumnSizes,
} from './components/table/types.tsx';
export {default as ManagedTable} from './components/table/ManagedTable.tsx';
export type {ManagedTableProps} from './components/table/ManagedTable.tsx';
export {
default as ManagedTable_immutable,
} from './components/table/ManagedTable_immutable.tsx';
export type {
ManagedTableProps_immutable,
} from './components/table/ManagedTable_immutable.tsx';
export type {Value} from './components/table/TypeBasedValueRenderer.tsx';
export {renderValue} from './components/table/TypeBasedValueRenderer.tsx';
//
export type {
DataValueExtractor,
DataInspectorExpanded,
} from './components/data-inspector/DataInspector.tsx';
export {
default as DataInspector,
} from './components/data-inspector/DataInspector.tsx';
export {
default as ManagedDataInspector,
} from './components/data-inspector/ManagedDataInspector.tsx';
export {
default as DataDescription,
} from './components/data-inspector/DataDescription.tsx';
// tabs
export {default as Tabs} from './components/Tabs.tsx';
export {default as Tab} from './components/Tab.tsx';
// inputs
export {default as Input} from './components/Input.tsx';
export {default as Textarea} from './components/Textarea.tsx';
export {default as Select} from './components/Select.tsx';
export {default as Checkbox} from './components/Checkbox.tsx';
// code
export {default as CodeBlock} from './components/CodeBlock.tsx';
// error
export {default as ErrorBlock} from './components/ErrorBlock.tsx';
export {ErrorBlockContainer} from './components/ErrorBlock.tsx';
export {default as ErrorBoundary} from './components/ErrorBoundary.tsx';
// interactive components
export type {OrderableOrder} from './components/Orderable.tsx';
export {default as Interactive} from './components/Interactive.tsx';
export {default as Orderable} from './components/Orderable.tsx';
export {default as VirtualList} from './components/VirtualList.tsx';
// base components
export {Component, PureComponent} from 'react';
// context menus and dropdowns
export {
default as ContextMenuProvider,
} from './components/ContextMenuProvider.tsx';
export {default as ContextMenu} from './components/ContextMenu.tsx';
// file
export type {FileListFile, FileListFiles} from './components/FileList.tsx';
export {default as FileList} from './components/FileList.tsx';
export {default as File} from './components/File.tsx';
// context menu items
export {
DesktopDropdownItem,
DesktopDropdownSelectedItem,
DesktopDropdown,
} from './components/desktop-toolbar.tsx';
// utility elements
export {default as View} from './components/View.tsx';
export {default as ViewWithSize} from './components/ViewWithSize.tsx';
export {default as Block} from './components/Block.tsx';
export {default as FocusableBox} from './components/FocusableBox.tsx';
export {default as Sidebar} from './components/Sidebar.tsx';
export {default as SidebarLabel} from './components/SidebarLabel.tsx';
export {default as Box} from './components/Box.tsx';
export {default as FlexBox} from './components/FlexBox.tsx';
export {default as FlexRow} from './components/FlexRow.tsx';
export {default as FlexColumn} from './components/FlexColumn.tsx';
export {default as FlexCenter} from './components/FlexCenter.tsx';
export {default as Toolbar, Spacer} from './components/Toolbar.tsx';
export {default as Panel} from './components/Panel.tsx';
export {default as Text} from './components/Text.tsx';
export {default as TextParagraph} from './components/TextParagraph.tsx';
export {default as Link} from './components/Link.tsx';
export {default as PathBreadcrumbs} from './components/PathBreadcrumbs.tsx';
export {default as ModalOverlay} from './components/ModalOverlay.tsx';
export {default as Tooltip} from './components/Tooltip.tsx';
export {default as TooltipProvider} from './components/TooltipProvider.tsx';
export {default as ResizeSensor} from './components/ResizeSensor.tsx';
export {default as StatusIndicator} from './components/StatusIndicator.tsx';
// typography
export {default as HorizontalRule} from './components/HorizontalRule.tsx';
export {default as VerticalRule} from './components/VerticalRule.tsx';
export {default as Label} from './components/Label.tsx';
export {default as Heading} from './components/Heading.tsx';
// filters
export type {Filter} from './components/filter/types.tsx';
export {default as MarkerTimeline} from './components/MarkerTimeline.tsx';
export {default as StackTrace} from './components/StackTrace.tsx';
//
export {
SearchBox,
SearchInput,
SearchIcon,
default as Searchable,
} from './components/searchable/Searchable.tsx';
export {
default as SearchableTable,
} from './components/searchable/SearchableTable.tsx';
export {
default as SearchableTable_immutable,
} from './components/searchable/SearchableTable_immutable.tsx';
export type {SearchableProps} from './components/searchable/Searchable.tsx';
//
export type {
ElementID,
ElementData,
ElementAttribute,
Element,
ElementSearchResultSet,
} from './components/elements-inspector/ElementsInspector.tsx';
export {Elements} from './components/elements-inspector/elements.tsx';
export type {
ContextMenuExtension,
} from './components/elements-inspector/elements.tsx';
export {
default as ElementsInspector,
} from './components/elements-inspector/ElementsInspector.tsx';
export {InspectorSidebar} from './components/elements-inspector/sidebar.tsx';
export {Console} from './components/console.tsx';
export {default as Sheet} from './components/Sheet.tsx';

174
src/ui/index.tsx Normal file
View File

@@ -0,0 +1,174 @@
/**
* Copyright 2018-present Facebook.
* 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 'react-emotion';
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} 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';
// inputs
export {default as Input} from './components/Input';
export {default as Textarea} from './components/Textarea';
export {default as Select} from './components/Select';
export {default as Checkbox} from './components/Checkbox';
// 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 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';
// 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,
} 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 {Console} from './components/console';
export {default as Sheet} from './components/Sheet';

View File

@@ -1,9 +0,0 @@
/**
* Copyright 2018-present Facebook.
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* @format
*/
import styled from 'react-emotion';
export default styled;