Merge pull request #76 from mathuo/73-use-more-react-18-friendly-code

feat: react 18
This commit is contained in:
mathuo 2022-04-24 11:22:19 +01:00 committed by GitHub
commit 979cb9aa5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 34676 additions and 21010 deletions

14822
package-lock.json generated

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -14,24 +14,25 @@
"author": "https://github.com/mathuo",
"license": "MIT",
"dependencies": {
"@mdx-js/react": "^2.1.1",
"dockview": "^1.2.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"recoil": "^0.7.2"
},
"devDependencies": {
"@babel/core": "^7.17.9",
"@storybook/addon-actions": "^6.4.22",
"@storybook/addon-controls": "^6.4.22",
"@storybook/addon-docs": "^6.4.22",
"@storybook/addon-essentials": "^6.4.22",
"@storybook/addon-links": "^6.4.22",
"@storybook/addon-storysource": "^6.4.22",
"@storybook/builder-webpack5": "^6.4.22",
"@storybook/manager-webpack5": "^6.4.22",
"@storybook/react": "^6.4.22",
"@types/react": "^17.0.40",
"@types/react-dom": "^17.0.13",
"@storybook/addon-actions": "^6.5.0-beta.0",
"@storybook/addon-controls": "^6.5.0-beta.0",
"@storybook/addon-docs": "^6.5.0-beta.0",
"@storybook/addon-essentials": "^6.5.0-beta.0",
"@storybook/addon-links": "^6.5.0-beta.0",
"@storybook/addon-storysource": "^6.5.0-beta.0",
"@storybook/builder-webpack5": "^6.5.0-beta.0",
"@storybook/manager-webpack5": "^6.5.0-beta.0",
"@storybook/react": "^6.5.0-beta.0",
"@types/react": "^18.0.5",
"@types/react-dom": "^18.0.1",
"babel-loader": "^8.2.4",
"cross-env": "^7.0.3",
"rimraf": "^3.0.2",

View File

@ -1,14 +1,15 @@
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import * as ReactDOM from 'react-dom/client';
import { Application } from './layout-grid/application';
import { RecoilRoot } from 'recoil';
import './index.scss';
document.getElementById('app').classList.add('dockview-theme-dark');
ReactDOM.render(
const root = ReactDOM.createRoot(document.getElementById('app'));
root.render(
<RecoilRoot>
<Application />
</RecoilRoot>,
document.getElementById('app')
</RecoilRoot>
);

File diff suppressed because it is too large Load Diff

View File

@ -70,7 +70,7 @@
"typedoc": "^0.22.15"
},
"peerDependencies": {
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
}

View File

@ -134,12 +134,6 @@ export const DockviewReact = React.forwardRef(
: undefined,
});
const disposable = dockview.onDidDrop((event) => {
if (props.onDidDrop) {
props.onDidDrop(event);
}
});
domRef.current?.appendChild(dockview.element);
dockview.deserializer = new ReactPanelDeserialzier(dockview);
@ -153,12 +147,29 @@ export const DockviewReact = React.forwardRef(
dockviewRef.current = dockview;
return () => {
disposable.dispose();
dockview.dispose();
element.remove();
};
}, []);
React.useEffect(() => {
if (!dockviewRef.current) {
return () => {
// noop
};
}
const disposable = dockviewRef.current.onDidDrop((event) => {
if (props.onDidDrop) {
props.onDidDrop(event);
}
});
return () => {
disposable.dispose();
};
}, [props.onDidDrop]);
React.useEffect(() => {
if (!dockviewRef.current) {
return;