Skip to content

Commit e755be4

Browse files
feat: support React 18 (#101)
1 parent 12f9b38 commit e755be4

15 files changed

+8631
-5253
lines changed

Diff for: example-plugin-app/package-lock.json

+1,441-840
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: example-plugin-app/package.json

+6-7
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@
44
"description": "",
55
"main": "index.jsx",
66
"scripts": {
7-
"lint": "fedx-scripts eslint --ext .js --ext .jsx . --resolve-plugins-relative-to .",
8-
"lint:fix": "fedx-scripts eslint --fix --ext .js --ext .jsx . --resolve-plugins-relative-to .",
7+
"lint": "fedx-scripts eslint --ext .js --ext .jsx --ext .ts --ext .tsx . --resolve-plugins-relative-to .",
8+
"lint:fix": "npm run lint -- --fix",
99
"start": "fedx-scripts webpack-dev-server --progress"
1010
},
1111
"keywords": [],
1212
"author": "edX",
1313
"license": "AAGPL-3.0",
1414
"dependencies": {
15-
"@openedx/frontend-build": "^14.0.3",
15+
"@openedx/frontend-build": "^14.3.1",
1616
"core-js": "^3.29.1",
17-
"react": "^17.0.0",
18-
"react-dom": "^17.0.0",
19-
"react-router-dom": "^6.22.1",
20-
"regenerator-runtime": "^0.14.1"
17+
"react": "^18.0.0",
18+
"react-dom": "^18.0.0",
19+
"react-router-dom": "^6.22.1"
2120
}
2221
}

Diff for: example-plugin-app/src/index.jsx

+19-12
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import 'core-js/stable';
2-
import 'regenerator-runtime/runtime';
32

4-
import React from 'react';
5-
import ReactDOM from 'react-dom';
3+
import React, { StrictMode } from 'react';
4+
import { createRoot } from 'react-dom/client';
65
import { Routes, Route } from 'react-router-dom';
76

87
import { AppProvider, ErrorPage, PageWrap } from '@edx/frontend-platform/react';
@@ -15,20 +14,28 @@ import PluginIframe from './PluginIframe';
1514

1615
import './index.scss';
1716

17+
const container = document.getElementById('root');
18+
const root = createRoot(container);
19+
1820
subscribe(APP_READY, () => {
19-
ReactDOM.render(
20-
<AppProvider>
21-
<Routes>
22-
<Route path="/default_iframe" element={<PageWrap><DefaultIframe /></PageWrap>} />
23-
<Route path="/plugin_iframe" element={<PageWrap><PluginIframe /></PageWrap>} />
24-
</Routes>
25-
</AppProvider>,
26-
document.getElementById('root'),
21+
root.render(
22+
<StrictMode>
23+
<AppProvider>
24+
<Routes>
25+
<Route path="/default_iframe" element={<PageWrap><DefaultIframe /></PageWrap>} />
26+
<Route path="/plugin_iframe" element={<PageWrap><PluginIframe /></PageWrap>} />
27+
</Routes>
28+
</AppProvider>
29+
</StrictMode>
2730
);
2831
});
2932

3033
subscribe(APP_INIT_ERROR, (error) => {
31-
ReactDOM.render(<ErrorPage message={error.message} />, document.getElementById('root'));
34+
root.render(
35+
<StrictMode>
36+
<ErrorPage message={error.message} />
37+
</StrictMode>,
38+
);
3239
});
3340

3441
initialize({

0 commit comments

Comments
 (0)