Skip to content

Commit

Permalink
React: Add why-did-you-render dev extension to better see what compon…
Browse files Browse the repository at this point in the history
…ents re-render and why (in console) (grafana#23455)

* React: Add why-did-you-render dev extension to better understand what components re-renders

* Lock version

* Updated yarn locj
  • Loading branch information
torkelo authored Apr 9, 2020
1 parent d831dde commit 278c312
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 676 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@
"@types/md5": "^2.1.33",
"@types/react-loadable": "5.5.2",
"@types/react-virtualized-auto-sizer": "1.0.0",
"@welldone-software/why-did-you-render": "4.0.6",
"abortcontroller-polyfill": "1.4.0",
"angular": "1.6.9",
"angular-bindonce": "0.3.1",
Expand Down
6 changes: 5 additions & 1 deletion public/app/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ import { registerEchoBackend, setEchoSrv } from '@grafana/runtime';
import { Echo } from './core/services/echo/Echo';
import { reportPerformance } from './core/services/echo/EchoSrv';
import { PerformanceBackend } from './core/services/echo/backends/PerformanceBackend';

import 'app/routes/GrafanaCtrl';
import 'app/features/all';
import { getStandardFieldConfigs, getStandardOptionEditors } from '@grafana/ui';
import { getDefaultVariableAdapters, variableAdapters } from './features/variables/adapters';
import { initDevFeatures } from './dev';

// add move to lodash for backward compatabiltiy
// @ts-ignore
Expand All @@ -62,6 +62,10 @@ extensionsIndex.keys().forEach((key: any) => {
extensionsIndex(key);
});

if (process.env.NODE_ENV === 'development') {
initDevFeatures();
}

export class GrafanaApp {
registerFunctions: any;
ngModuleDependencies: any[];
Expand Down
18 changes: 10 additions & 8 deletions public/app/dev.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import app from './app';
import React from 'react';

/*
Import theme CSS based on env vars, e.g.: `env GRAFANA_THEME=light yarn start`
*/
declare var GRAFANA_THEME: any;
require('../sass/grafana.' + GRAFANA_THEME + '.scss');

app.init();
export function initDevFeatures() {
// if why-render is in url enable why did you render react extension
if (window.location.search.indexOf('why-render') !== -1) {
const whyDidYouRender = require('@welldone-software/why-did-you-render');
whyDidYouRender(React, {
trackAllPureComponents: true,
});
}
}
Loading

0 comments on commit 278c312

Please sign in to comment.