Introduce useLogger hook

Summary: In the Flipper chrome there is a lot of `logger={logger}` prop drilling. Let's not do that anymore in the future by using a proper hook, which is exposed from `flipper-plugin`.

Reviewed By: passy

Differential Revision: D25421304

fbshipit-source-id: 01ec8563c67f7e2fac359c2f8216eba722bff8d9
This commit is contained in:
Michel Weststrate
2020-12-09 05:31:13 -08:00
committed by Facebook GitHub Bot
parent 083dbd3dbc
commit 4aff8c1bcf
7 changed files with 130 additions and 43 deletions

View File

@@ -39,6 +39,8 @@ import {
_NuxManagerContext,
_createNuxManager,
_setGlobalInteractionReporter,
Logger,
_LoggerContext,
} from 'flipper-plugin';
import isProduction from './utils/isProduction';
import ReleaseChannel from './ReleaseChannel';
@@ -58,20 +60,22 @@ enableMapSet();
GK.init();
const AppFrame = () => (
<Provider store={store}>
<CacheProvider value={cache}>
<TooltipProvider>
<PopoverProvider>
<ContextMenuProvider>
<_NuxManagerContext.Provider value={_createNuxManager()}>
<App logger={logger} />
</_NuxManagerContext.Provider>
</ContextMenuProvider>
</PopoverProvider>
</TooltipProvider>
</CacheProvider>
</Provider>
const AppFrame = ({logger}: {logger: Logger}) => (
<_LoggerContext.Provider value={logger}>
<Provider store={store}>
<CacheProvider value={cache}>
<TooltipProvider>
<PopoverProvider>
<ContextMenuProvider>
<_NuxManagerContext.Provider value={_createNuxManager()}>
<App logger={logger} />
</_NuxManagerContext.Provider>
</ContextMenuProvider>
</PopoverProvider>
</TooltipProvider>
</CacheProvider>
</Provider>
</_LoggerContext.Provider>
);
function setProcessState(store: Store) {
@@ -107,7 +111,10 @@ function init() {
else console.error(msg, r.error);
}
});
ReactDOM.render(<AppFrame />, document.getElementById('root'));
ReactDOM.render(
<AppFrame logger={logger} />,
document.getElementById('root'),
);
initLauncherHooks(config(), store);
registerRecordingHooks(store);
enableConsoleHook();