Skip to content

Commit

Permalink
fixed nollup running the demo app + migrated from react-hot-loader to…
Browse files Browse the repository at this point in the history
… react-refresh
  • Loading branch information
vzaidman committed Dec 29, 2024
1 parent 943ebe5 commit 6bd8f0c
Show file tree
Hide file tree
Showing 29 changed files with 112 additions and 167 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ In [Typescript](https://github.com/welldone-software/why-did-you-render/issues/1
/// <reference types="@welldone-software/why-did-you-render" />
```

Import `wdyr` as the first import (even before `react-hot-loader`):
Import `wdyr` as the first import (even before `react-hot-loader` if you use it):

`index.js`:
```jsx
Expand Down
2 changes: 1 addition & 1 deletion babel.config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ module.exports = function(api) {
];

const plugins = compact([
(!isProd && !isTest) && 'react-hot-loader/babel',
(!isProd && !isTest) && 'react-refresh/babel',
!isProd && '@babel/plugin-transform-class-properties',
]);

Expand Down
2 changes: 2 additions & 0 deletions demo/nollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ const babel = require('@rollup/plugin-babel').default;
const nodeResolve = require('rollup-plugin-node-resolve');
const alias = require('rollup-plugin-alias');
const commonjs = require('rollup-plugin-commonjs-alternate');
const refresh = require('rollup-plugin-react-refresh');

module.exports = {
input: 'demo/src/index.js',
Expand Down Expand Up @@ -32,5 +33,6 @@ module.exports = {
mainFields: ['module', 'browser', 'main'],
}),
commonjs({}),
refresh(),
],
};
15 changes: 8 additions & 7 deletions demo/src/App.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import ReactHotLoader from 'react-hot-loader';

import React from 'react';
import ReactDom from 'react-dom';
import ReactDom from 'react-dom/client';

import whyDidYouRender from '@welldone-software/why-did-you-render';

import Menu from './Menu';
Expand Down Expand Up @@ -52,14 +51,16 @@ const demosList = {

const defaultDemoName = 'bigList';

const domDemoElement = document.getElementById('demo');
const domElement = document.getElementById('demo');
let reactDomRoot;

function changeDemo(demoFn) {
console.clear && console.clear(); // eslint-disable-line no-console
React.__REVERT_WHY_DID_YOU_RENDER__ && React.__REVERT_WHY_DID_YOU_RENDER__();
ReactDom.unmountComponentAtNode(domDemoElement);
reactDomRoot?.unmount();
reactDomRoot = ReactDom.createRoot(domElement);
setTimeout(() => {
demoFn({ whyDidYouRender, domElement: domDemoElement });
demoFn({ whyDidYouRender, reactDomRoot });
}, 1);
}

Expand All @@ -85,6 +86,6 @@ const App = () => (
</Menu>
);

export default ReactHotLoader.hot(module)(App);
export default App;


5 changes: 2 additions & 3 deletions demo/src/bigList/index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import React from 'react';
import ReactDom from 'react-dom';
import { times } from 'lodash';

export default {
description: 'Big List (Main Demo)',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
whyDidYouRender(React);

class BigListPureComponent extends React.PureComponent {
Expand Down Expand Up @@ -49,6 +48,6 @@ export default {
}
}

ReactDom.render(<Main/>, domElement);
reactDomRoot.render(<Main/>);
},
};
7 changes: 3 additions & 4 deletions demo/src/bothChanges/index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React from 'react';
import ReactDom from 'react-dom';

import createStepLogger from '../createStepLogger';

export default {
description: 'Props And State Changes',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
const stepLogger = createStepLogger();

whyDidYouRender(React);
Expand All @@ -29,9 +28,9 @@ export default {
}

stepLogger('First Render');
ReactDom.render(<ClassDemo a={{ b: 'b' }}/>, domElement);
reactDomRoot.render(<ClassDemo a={{ b: 'b' }}/>);

stepLogger('Second Render', true);
ReactDom.render(<ClassDemo a={{ b: 'b' }}/>, domElement);
reactDomRoot.render(<ClassDemo a={{ b: 'b' }}/>);
},
};
5 changes: 2 additions & 3 deletions demo/src/childOfPureComponent/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import React from 'react';
import ReactDom from 'react-dom';

export default {
description: 'Child of Pure Component',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
whyDidYouRender(React, {
trackAllPureComponents: true,
});
Expand Down Expand Up @@ -38,6 +37,6 @@ export default {
}
}

ReactDom.render(<Main/>, domElement);
reactDomRoot.render(<Main/>);
},
};
7 changes: 3 additions & 4 deletions demo/src/cloneElement/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import React from 'react';
import ReactDom from 'react-dom';

export default {
description: 'Creating react element using React.cloneElement',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
whyDidYouRender(React);

class TestComponent extends React.Component {
Expand All @@ -20,7 +19,7 @@ export default {
const testElement = <TestComponent a={1}/>;
const testElement2 = React.cloneElement(testElement);

ReactDom.render(testElement, domElement);
ReactDom.render(testElement2, domElement);
reactDomRoot.render(testElement);
reactDomRoot.render(testElement2);
},
};
7 changes: 3 additions & 4 deletions demo/src/createFactory/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import React from 'react';
import ReactDom from 'react-dom';

export default {
description: 'Creating react element using React.createFactory',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
whyDidYouRender(React);

class TestComponent extends React.Component {
Expand All @@ -19,7 +18,7 @@ export default {

const TestComponentFactory = React.createFactory(TestComponent);

ReactDom.render(TestComponentFactory({ a: 1 }), domElement);
ReactDom.render(TestComponentFactory({ a: 1 }), domElement);
reactDomRoot.render(TestComponentFactory({ a: 1 }));
reactDomRoot.render(TestComponentFactory({ a: 1 }));
},
};
5 changes: 2 additions & 3 deletions demo/src/hooks/useContext.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
/* eslint-disable no-console */
import React from 'react';
import ReactDom from 'react-dom';
import createStepLogger from '../createStepLogger';

export default {
description: 'Hooks - useContext',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
whyDidYouRender(React);

const stepLogger = createStepLogger();
Expand Down Expand Up @@ -87,6 +86,6 @@ export default {
}

stepLogger('initial render');
ReactDom.render(<Main/>, domElement);
reactDomRoot.render(<Main/>);
},
};
5 changes: 2 additions & 3 deletions demo/src/hooks/useMemoAndCallbackChild.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React from 'react';
import ReactDom from 'react-dom';

import createStepLogger from '../createStepLogger';

export default {
description: 'Hooks - useMemo and useCallback Child',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
const stepLogger = createStepLogger();

whyDidYouRender(React);
Expand Down Expand Up @@ -64,6 +63,6 @@ export default {

Main.displayName = 'Main';

ReactDom.render(<Main/>, domElement);
reactDomRoot.render(<Main/>);
},
};
5 changes: 2 additions & 3 deletions demo/src/hooks/useReducer.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
/* eslint-disable no-console */
import React from 'react';
import ReactDom from 'react-dom';

export default {
description: 'Hooks - useReducer',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
whyDidYouRender(React);

function reducer(state, action) {
Expand Down Expand Up @@ -54,6 +53,6 @@ export default {
}
Main.whyDidYouRender = true;

ReactDom.render(<Main/>, domElement);
reactDomRoot.render(<Main/>);
},
};
5 changes: 2 additions & 3 deletions demo/src/hooks/useState.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
/* eslint-disable no-console */
import React from 'react';
import ReactDom from 'react-dom';

export default {
description: 'Hooks - useState',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
whyDidYouRender(React);

function BrokenHooksComponent() {
Expand Down Expand Up @@ -86,6 +85,6 @@ export default {
);
}

ReactDom.render(<Main/>, domElement);
reactDomRoot.render(<Main/>);
},
};
12 changes: 4 additions & 8 deletions demo/src/hotReload/index.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,29 @@
import React from 'react';
import ReactDom from 'react-dom';
import ReactHotLoader from 'react-hot-loader';

import createStepLogger from '../createStepLogger';

const text = 'change me when the app is running please';

let DemoComponent = ({ children }) => (
const DemoComponent = ({ children }) => (
<div>
<h4>{text}</h4>
{children}
</div>
);

DemoComponent = ReactHotLoader.hot(module)(DemoComponent);

DemoComponent.whyDidYouRender = true;

export default {
description: 'React Hot Reload Of Tracked Component',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
const stepLogger = createStepLogger();

whyDidYouRender(React);

stepLogger('initial render');
ReactDom.render(<DemoComponent>yo!</DemoComponent>, domElement);
reactDomRoot.render(<DemoComponent>yo!</DemoComponent>);

stepLogger('render with same props', true);
ReactDom.render(<DemoComponent>yo!</DemoComponent>, domElement);
reactDomRoot.render(<DemoComponent>yo!</DemoComponent>);
},
};
9 changes: 6 additions & 3 deletions demo/src/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import React from 'react';
import ReactDom from 'react-dom';
import ReactDom from 'react-dom/client';

import App from './App';

const domMenuElement = document.getElementById('menu');
const element = document.getElementById('menu');

const root = ReactDom.createRoot(element);

root.render(<App/>);

ReactDom.render(<App/>, domMenuElement);
11 changes: 5 additions & 6 deletions demo/src/logOwnerReasons/index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React from 'react';
import ReactDom from 'react-dom';

import createStepLogger from '../createStepLogger';

export default {
description: 'Log Owner Reasons',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
const stepLogger = createStepLogger();

whyDidYouRender(React);
Expand Down Expand Up @@ -40,15 +39,15 @@ export default {
}

stepLogger('First render');
ReactDom.render(<Owner a={1} />, domElement);
reactDomRoot.render(<Owner a={1} />);

stepLogger('Owner props change', true);
ReactDom.render(<Owner a={2} />, domElement);
reactDomRoot.render(<Owner a={2} />);

stepLogger('Owner state change', true);
ReactDom.render(<ClassOwner />, domElement);
reactDomRoot.render(<ClassOwner />);

stepLogger('Owner hooks changes', true);
ReactDom.render(<HooksOwner />, domElement);
reactDomRoot.render(<HooksOwner />);
},
};
5 changes: 2 additions & 3 deletions demo/src/noChanges/index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React from 'react';
import ReactDom from 'react-dom';

import createStepLogger from '../createStepLogger';

export default {
description: 'No Changes',
fn({ domElement, whyDidYouRender }) {
fn({ reactDomRoot, whyDidYouRender }) {
const stepLogger = createStepLogger();

whyDidYouRender(React);
Expand All @@ -23,6 +22,6 @@ export default {
}

stepLogger('First Render');
ReactDom.render(<ClassDemo/>, domElement);
reactDomRoot.render(<ClassDemo/>);
},
};
Loading

0 comments on commit 6bd8f0c

Please sign in to comment.