diff --git a/src/NotificationsHub.tsx b/src/NotificationsHub.tsx index 76d4415cf..07d090c7e 100644 --- a/src/NotificationsHub.tsx +++ b/src/NotificationsHub.tsx @@ -23,7 +23,7 @@ import { } from 'flipper'; import {FlipperDevicePlugin, BaseAction} from './plugin'; import {connect, ReactReduxContext} from 'react-redux'; -import {store} from './init'; +import {store} from './store'; import React, {Component, Fragment} from 'react'; import {clipboard} from 'electron'; import { diff --git a/src/chrome/ListView.tsx b/src/chrome/ListView.tsx index bf944e53a..a558b5928 100644 --- a/src/chrome/ListView.tsx +++ b/src/chrome/ListView.tsx @@ -17,9 +17,8 @@ import { Checkbox, colors, View, -} from 'flipper'; +} from '../ui'; import React, {Component} from 'react'; -import {ReactReduxContext} from 'react-redux'; export type SelectionType = 'multiple' | 'single'; diff --git a/src/chrome/ShareSheetErrorList.tsx b/src/chrome/ShareSheetErrorList.tsx index 3ec505515..761009d3f 100644 --- a/src/chrome/ShareSheetErrorList.tsx +++ b/src/chrome/ShareSheetErrorList.tsx @@ -8,7 +8,7 @@ */ import React, {PureComponent} from 'react'; -import {FlexColumn, Text, styled} from 'flipper'; +import {FlexColumn, Text, styled} from '../ui'; type Props = { errors: Array; diff --git a/src/chrome/ShareSheetExportFile.tsx b/src/chrome/ShareSheetExportFile.tsx index 112a00909..43f85153a 100644 --- a/src/chrome/ShareSheetExportFile.tsx +++ b/src/chrome/ShareSheetExportFile.tsx @@ -22,7 +22,7 @@ import { import ShareSheetErrorList from './ShareSheetErrorList'; import ShareSheetPendingDialog from './ShareSheetPendingDialog'; import {ReactReduxContext} from 'react-redux'; -import {store} from '../init'; +import {store} from '../store'; const Container = styled(FlexColumn)({ padding: 20, diff --git a/src/chrome/ShareSheetExportUrl.tsx b/src/chrome/ShareSheetExportUrl.tsx index 2bde79b50..c9ce7b4a1 100644 --- a/src/chrome/ShareSheetExportUrl.tsx +++ b/src/chrome/ShareSheetExportUrl.tsx @@ -18,7 +18,7 @@ import { } from 'flipper'; import React, {Component} from 'react'; import {ReactReduxContext} from 'react-redux'; -import {store} from '../init'; +import {store} from '../store'; import { setExportStatusComponent, unsetShare, diff --git a/src/chrome/ShareSheetPendingDialog.tsx b/src/chrome/ShareSheetPendingDialog.tsx index 6d70aaf54..5b05823d0 100644 --- a/src/chrome/ShareSheetPendingDialog.tsx +++ b/src/chrome/ShareSheetPendingDialog.tsx @@ -16,7 +16,7 @@ import { FlexRow, Text, LoadingIndicator, -} from 'flipper'; +} from '../ui'; import React from 'react'; const Container = styled(FlexColumn)({ diff --git a/src/chrome/VideoRecordingButton.tsx b/src/chrome/VideoRecordingButton.tsx index 0c4946d0e..33d54241d 100644 --- a/src/chrome/VideoRecordingButton.tsx +++ b/src/chrome/VideoRecordingButton.tsx @@ -9,7 +9,7 @@ import React, {Component} from 'react'; import BaseDevice from '../devices/BaseDevice'; -import {Button, Glyph, colors} from 'flipper'; +import {Button, Glyph, colors} from '../ui'; import path from 'path'; import os from 'os'; diff --git a/src/init.tsx b/src/init.tsx index 040c915d7..77e385e45 100644 --- a/src/init.tsx +++ b/src/init.tsx @@ -16,13 +16,11 @@ import {init as initLogger} from './fb-stubs/Logger'; import App from './App'; import BugReporter from './fb-stubs/BugReporter'; import setupPrefetcher from './fb-stubs/Prefetcher'; -import {createStore} from 'redux'; import {persistStore} from 'redux-persist'; -import reducers, {Store, Actions, State as StoreState} from './reducers/index'; +import {Store} from './reducers/index'; import dispatcher from './dispatcher/index'; import TooltipProvider from './ui/components/TooltipProvider'; import config from './utils/processConfig'; -import {stateSanitizer} from './utils/reduxDevToolsConfig'; import {initLauncherHooks} from './utils/launcher'; import initCrashReporter from './utils/electronCrashReporter'; import fbConfig from './fb-stubs/config'; @@ -31,16 +29,7 @@ import WarningEmployee from './chrome/WarningEmployee'; import {setPersistor} from './utils/persistor'; import React from 'react'; import path from 'path'; - -export const store = createStore( - reducers, - window.__REDUX_DEVTOOLS_EXTENSION__ - ? window.__REDUX_DEVTOOLS_EXTENSION__({ - // @ts-ignore: stateSanitizer is not part of type definition. - stateSanitizer, - }) - : undefined, -); +import {store} from './store'; const logger = initLogger(store); const bugReporter = new BugReporter(logger, store); diff --git a/src/store.tsx b/src/store.tsx new file mode 100644 index 000000000..a7beb4b38 --- /dev/null +++ b/src/store.tsx @@ -0,0 +1,22 @@ +/** + * 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 + */ + +import {createStore} from 'redux'; +import reducers, {Actions, State as StoreState} from './reducers/index'; +import {stateSanitizer} from './utils/reduxDevToolsConfig'; + +export const store = createStore( + reducers, + window.__REDUX_DEVTOOLS_EXTENSION__ + ? window.__REDUX_DEVTOOLS_EXTENSION__({ + // @ts-ignore: stateSanitizer is not part of type definition. + stateSanitizer, + }) + : undefined, +); diff --git a/src/ui/components/StatusIndicator.tsx b/src/ui/components/StatusIndicator.tsx index 3c821035e..7b8e08d3b 100644 --- a/src/ui/components/StatusIndicator.tsx +++ b/src/ui/components/StatusIndicator.tsx @@ -7,7 +7,9 @@ * @format */ -import {colors, styled} from 'flipper'; +import styled from 'react-emotion'; +import {colors} from './colors'; + import {BackgroundColorProperty, HeightProperty} from 'csstype'; type Props = { diff --git a/src/ui/components/data-inspector/DataInspector.tsx b/src/ui/components/data-inspector/DataInspector.tsx index 3543ac7e3..31c1c9008 100644 --- a/src/ui/components/data-inspector/DataInspector.tsx +++ b/src/ui/components/data-inspector/DataInspector.tsx @@ -15,7 +15,7 @@ import Tooltip from '../Tooltip'; import styled from 'react-emotion'; import createPaste from '../../../fb-stubs/createPaste'; import {reportInteraction} from '../../../utils/InteractionTracker'; -import DataPreview from './DataPreview'; +import DataPreview, {DataValueExtractor, InspectorName} from './DataPreview'; import {getSortedKeys} from './utils'; import {colors} from '../colors'; import {clipboard} from 'electron'; @@ -23,6 +23,8 @@ import deepEqual from 'deep-equal'; import React from 'react'; import {TooltipOptions} from '../TooltipProvider.js'; +export {DataValueExtractor} from './DataPreview'; + const BaseContainer = styled('div')( (props: {depth?: number; disabled?: boolean}) => ({ fontFamily: 'Menlo, monospace', @@ -60,28 +62,11 @@ const ExpandControl = styled('span')({ }); ExpandControl.displayName = 'DataInspector:ExpandControl'; -export const InspectorName = styled('span')({ - color: colors.grapeDark1, -}); -InspectorName.displayName = 'DataInspector:InspectorName'; - const nameTooltipOptions: TooltipOptions = { position: 'toLeft', showTail: true, }; -export type DataValueExtractor = ( - value: any, - depth: number, -) => - | { - mutable: boolean; - type: string; - value: any; - } - | undefined - | null; - export type DataInspectorSetValue = (path: Array, val: any) => void; export type DataInspectorExpanded = { diff --git a/src/ui/components/data-inspector/DataPreview.tsx b/src/ui/components/data-inspector/DataPreview.tsx index 7b71e9d95..b8e7f0eeb 100755 --- a/src/ui/components/data-inspector/DataPreview.tsx +++ b/src/ui/components/data-inspector/DataPreview.tsx @@ -7,12 +7,29 @@ * @format */ -import {DataValueExtractor, InspectorName} from './DataInspector'; import DataDescription from './DataDescription'; import styled from 'react-emotion'; import {getSortedKeys} from './utils'; import {PureComponent} from 'react'; import React from 'react'; +import {colors} from '../colors'; + +export type DataValueExtractor = ( + value: any, + depth: number, +) => + | { + mutable: boolean; + type: string; + value: any; + } + | undefined + | null; + +export const InspectorName = styled('span')({ + color: colors.grapeDark1, +}); +InspectorName.displayName = 'DataInspector:InspectorName'; const PreviewContainer = styled('span')({ fontStyle: 'italic', diff --git a/src/ui/components/data-inspector/ManagedDataInspector.tsx b/src/ui/components/data-inspector/ManagedDataInspector.tsx index c0d3cc278..a24c5324d 100644 --- a/src/ui/components/data-inspector/ManagedDataInspector.tsx +++ b/src/ui/components/data-inspector/ManagedDataInspector.tsx @@ -7,10 +7,11 @@ * @format */ -import {DataValueExtractor, DataInspectorExpanded} from './DataInspector'; +import {DataInspectorExpanded} from './DataInspector'; import {PureComponent} from 'react'; import DataInspector from './DataInspector'; import React from 'react'; +import {DataValueExtractor} from './DataPreview'; type ManagedDataInspectorProps = { /** diff --git a/src/utils/icons.js b/src/utils/icons.js index 8fe65e072..d9191fe86 100644 --- a/src/utils/icons.js +++ b/src/utils/icons.js @@ -44,6 +44,7 @@ const ICONS = { 'mobile-engagement': [16], network: [12], 'news-feed': [12], + 'question-circle': [12], 'question-circle-outline': [16], 'star-outline': [12, 16, 24], trending: [12],