From a522afd64f2b020a529d9505b831e408fa3726c0 Mon Sep 17 00:00:00 2001 From: John Knox Date: Mon, 12 Aug 2019 03:02:16 -0700 Subject: [PATCH] Convert utils/textContent.tsx to TS Summary: Convert utils/textContent.tsx to TS Reviewed By: danielbuechele Differential Revision: D16710386 fbshipit-source-id: 225d66965d915fc1c36e382e3c06c7b2dad5d973 --- src/createTablePlugin.js | 2 +- src/plugins/TableNativePlugin.js | 2 +- src/ui/components/filter/FilterRow.js | 2 +- src/ui/components/searchable/SearchableTable.js | 2 +- .../components/searchable/SearchableTable_immutable.js | 2 +- src/ui/components/table/ManagedTable.js | 2 +- src/ui/components/table/ManagedTable_immutable.js | 2 +- src/utils/index.js | 2 +- src/utils/{textContent.js => textContent.tsx} | 9 ++++----- 9 files changed, 12 insertions(+), 13 deletions(-) rename src/utils/{textContent.js => textContent.tsx} (84%) diff --git a/src/createTablePlugin.js b/src/createTablePlugin.js index 40d82e777..71659ba9c 100644 --- a/src/createTablePlugin.js +++ b/src/createTablePlugin.js @@ -17,7 +17,7 @@ import Button from './ui/components/Button'; import DetailSidebar from './chrome/DetailSidebar'; import {FlipperPlugin} from './plugin.tsx'; import SearchableTable_immutable from './ui/components/searchable/SearchableTable_immutable'; -import textContent from './utils/textContent.js'; +import textContent from './utils/textContent.tsx'; import createPaste from './fb-stubs/createPaste.tsx'; import {List, Map as ImmutableMap} from 'immutable'; diff --git a/src/plugins/TableNativePlugin.js b/src/plugins/TableNativePlugin.js index 5dec7278c..4c1b22664 100644 --- a/src/plugins/TableNativePlugin.js +++ b/src/plugins/TableNativePlugin.js @@ -21,7 +21,7 @@ import FlexColumn from '../ui/components/FlexColumn'; import DetailSidebar from '../chrome/DetailSidebar'; import {FlipperPlugin} from '../plugin.tsx'; import SearchableTable from '../ui/components/searchable/SearchableTable'; -import textContent from '../utils/textContent.js'; +import textContent from '../utils/textContent.tsx'; import createPaste from '../fb-stubs/createPaste.tsx'; import type {Node} from 'react'; diff --git a/src/ui/components/filter/FilterRow.js b/src/ui/components/filter/FilterRow.js index 49afee170..cfd525c02 100644 --- a/src/ui/components/filter/FilterRow.js +++ b/src/ui/components/filter/FilterRow.js @@ -8,7 +8,7 @@ import type {Filter} from './types.js'; import {PureComponent} from 'react'; import ContextMenu from '../ContextMenu.js'; -import textContent from '../../../utils/textContent.js'; +import textContent from '../../../utils/textContent.tsx'; import styled from '../../styled/index.js'; import {colors} from '../colors.js'; diff --git a/src/ui/components/searchable/SearchableTable.js b/src/ui/components/searchable/SearchableTable.js index 0dedeb668..e91a15829 100644 --- a/src/ui/components/searchable/SearchableTable.js +++ b/src/ui/components/searchable/SearchableTable.js @@ -10,7 +10,7 @@ import type {SearchableProps} from './Searchable.js'; import {PureComponent} from 'react'; import ManagedTable from '../table/ManagedTable.js'; -import textContent from '../../../utils/textContent.js'; +import textContent from '../../../utils/textContent.tsx'; import Searchable from './Searchable.js'; import deepEqual from 'deep-equal'; diff --git a/src/ui/components/searchable/SearchableTable_immutable.js b/src/ui/components/searchable/SearchableTable_immutable.js index 1b27bf1bf..340fc7de3 100644 --- a/src/ui/components/searchable/SearchableTable_immutable.js +++ b/src/ui/components/searchable/SearchableTable_immutable.js @@ -10,7 +10,7 @@ import type {SearchableProps} from './Searchable.js'; import {PureComponent} from 'react'; import ManagedTable_immutable from '../table/ManagedTable_immutable.js'; -import textContent from '../../../utils/textContent.js'; +import textContent from '../../../utils/textContent.tsx'; import Searchable from './Searchable.js'; import deepEqual from 'deep-equal'; diff --git a/src/ui/components/table/ManagedTable.js b/src/ui/components/table/ManagedTable.js index 8c2e92707..52cfb4c27 100644 --- a/src/ui/components/table/ManagedTable.js +++ b/src/ui/components/table/ManagedTable.js @@ -31,7 +31,7 @@ import createPaste from '../../../fb-stubs/createPaste.tsx'; import debounceRender from 'react-debounce-render'; import debounce from 'lodash.debounce'; import {DEFAULT_ROW_HEIGHT} from './types'; -import textContent from '../../../utils/textContent.js'; +import textContent from '../../../utils/textContent.tsx'; export type ManagedTableProps = {| /** diff --git a/src/ui/components/table/ManagedTable_immutable.js b/src/ui/components/table/ManagedTable_immutable.js index 28b3402a7..54e78859c 100644 --- a/src/ui/components/table/ManagedTable_immutable.js +++ b/src/ui/components/table/ManagedTable_immutable.js @@ -31,7 +31,7 @@ import createPaste from '../../../fb-stubs/createPaste.tsx'; import debounceRender from 'react-debounce-render'; import debounce from 'lodash.debounce'; import {DEFAULT_ROW_HEIGHT} from './types'; -import textContent from '../../../utils/textContent.js'; +import textContent from '../../../utils/textContent.tsx'; export type ManagedTableProps_immutable = {| /** diff --git a/src/utils/index.js b/src/utils/index.js index a3ab896a7..0420624a2 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -5,5 +5,5 @@ * @format */ -export {default as textContent} from './textContent.js'; +export {default as textContent} from './textContent.tsx'; export {getStringFromErrorLike} from './errors.tsx'; diff --git a/src/utils/textContent.js b/src/utils/textContent.tsx similarity index 84% rename from src/utils/textContent.js rename to src/utils/textContent.tsx index 25c81cf25..aa4f22485 100644 --- a/src/utils/textContent.js +++ b/src/utils/textContent.tsx @@ -5,7 +5,7 @@ * @format */ -import type {Node} from 'react'; +import {ReactNode, ReactElement} from 'react'; function isReactElement(object: any) { return ( @@ -19,9 +19,9 @@ function isReactElement(object: any) { * Recursively walks through all children of a React element and returns * the string representation of the leafs concatenated. */ -export default (node: Node): string => { +export default (node: ReactNode): string => { let res = ''; - const traverse = (node: Node) => { + const traverse = (node: ReactNode) => { if (typeof node === 'string' || typeof node === 'number') { // this is a leaf, add it to the result string res += node; @@ -30,8 +30,7 @@ export default (node: Node): string => { node.forEach(traverse); } else if (isReactElement(node)) { // node is a react element access its children an recursively stringify them - // $FlowFixMe - const {children} = node.props; + const {children} = (node as ReactElement).props; if (Array.isArray(children)) { children.forEach(traverse); } else {