From 9cfa25bdccf1d04f20189ee745a80501ffadd7b1 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Thu, 14 Feb 2019 13:32:30 -0800 Subject: [PATCH] Tidied up Flow types for Bridge and Store --- src/backend/agent.js | 2 +- src/backend/types.js | 3 ++- src/devtools/store.js | 8 ++++---- src/devtools/views/Settings.css | 1 - src/hook.js | 7 +++---- src/types.js | 10 +++++----- 6 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/backend/agent.js b/src/backend/agent.js index e14ec53c05..185c1d34a1 100644 --- a/src/backend/agent.js +++ b/src/backend/agent.js @@ -31,7 +31,7 @@ export default class Agent extends EventEmitter { bridge.addListener('shutdown', this.shutdown); // TODO Listen to bridge for things like selection. - // bridge.on('...'), this...); + // bridge.addListener('...'), this...); } highlightElementInDOM = ({ diff --git a/src/backend/types.js b/src/backend/types.js index 62cf87d0fa..64305c5952 100644 --- a/src/backend/types.js +++ b/src/backend/types.js @@ -48,6 +48,7 @@ export type RendererInterface = { getNativeFromReactElement?: ?(component: Fiber) => ?NativeType, getReactElementFromNative?: ?(component: NativeType) => ?Fiber, handleCommitFiberRoot: (fiber: Object) => void, + handleCommitFiberUnmount: (fiber: Object) => void, inspectElement: (id: number) => InspectedElement | null, renderer: ReactRenderer | null, selectElement: (id: number) => void, @@ -63,7 +64,7 @@ export type Hook = { emit: (evt: string, data: any) => void, getFiberRoots: (rendererID: RendererID) => Set, - inject: (renderer: ReactRenderer) => string | null, + inject: (renderer: ReactRenderer) => number | null, on: (evt: string, handler: Handler) => void, off: (evt: string, handler: Handler) => void, reactDevtoolsAgent?: ?Object, diff --git a/src/devtools/store.js b/src/devtools/store.js index 388ae24599..d968e1d4a2 100644 --- a/src/devtools/store.js +++ b/src/devtools/store.js @@ -55,8 +55,8 @@ export default class Store extends EventEmitter { debug('constructor', 'subscribing to Bridge'); this._bridge = bridge; - this._bridge.on('operations', this.onBridgeOperations); - this._bridge.on('shutdown', this.onBridgeShutdown); + this._bridge.addListener('operations', this.onBridgeOperations); + this._bridge.addListener('shutdown', this.onBridgeShutdown); } get numElements(): number { @@ -405,8 +405,8 @@ export default class Store extends EventEmitter { onBridgeShutdown = () => { debug('onBridgeShutdown', 'unsubscribing from Bridge'); - this._bridge.off('operations', this.onBridgeOperations); - this._bridge.off('shutdown', this.onBridgeShutdown); + this._bridge.removeListener('operations', this.onBridgeOperations); + this._bridge.removeListener('shutdown', this.onBridgeShutdown); }; // DEBUG diff --git a/src/devtools/views/Settings.css b/src/devtools/views/Settings.css index cb493a402a..f92cf20de6 100644 --- a/src/devtools/views/Settings.css +++ b/src/devtools/views/Settings.css @@ -1,6 +1,5 @@ .Settings { width: 100%; - height: 100%; padding: 0.5rem; display: flex; flex-direction: column; diff --git a/src/hook.js b/src/hook.js index a0fe7b066c..8fa9e1b610 100644 --- a/src/hook.js +++ b/src/hook.js @@ -7,12 +7,12 @@ * @flow */ -import type { Hook } from './types'; +import type { Hook } from 'src/backend/types'; declare var window: any; -export function installHook(target: any): Hook { - if (target.hasOwnProperty('__REACT_DEVTOOLS_GLOBAL_HOOK__')) return; +export function installHook(target: any): Hook | null { + if (target.hasOwnProperty('__REACT_DEVTOOLS_GLOBAL_HOOK__')) return null; function detectReactBuildType(renderer) { try { @@ -124,7 +124,6 @@ export function installHook(target: any): Hook { } function onCommitFiberUnmount(rendererID, fiber) { - // TODO: can we use hook for roots too? const rendererInterface = rendererInterfaces.get(rendererID); if (rendererInterface != null) { rendererInterface.handleCommitFiberUnmount(fiber); diff --git a/src/types.js b/src/types.js index 84b0b3045b..3cb12e26fd 100644 --- a/src/types.js +++ b/src/types.js @@ -1,10 +1,10 @@ // @flow -// TODO -export type Bridge = any; - -// TODO -export type Hook = any; +export type Bridge = { + addListener(type: string, callback: Function): void, + removeListener(type: string, callback: Function): void, + send(type: string, data?: any): void, +}; export type Wall = {| listen: (fn: Function) => void,