aboutsummaryrefslogtreecommitdiffstats
path: root/src/containers/settings/ReleaseNotesWindow.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/containers/settings/ReleaseNotesWindow.tsx')
-rw-r--r--src/containers/settings/ReleaseNotesWindow.tsx42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/containers/settings/ReleaseNotesWindow.tsx b/src/containers/settings/ReleaseNotesWindow.tsx
new file mode 100644
index 000000000..3e43727d0
--- /dev/null
+++ b/src/containers/settings/ReleaseNotesWindow.tsx
@@ -0,0 +1,42 @@
1import { inject, observer } from 'mobx-react';
2import { Component, ReactPortal } from 'react';
3import ReactDOM from 'react-dom';
4import { Outlet } from 'react-router-dom';
5
6import { StoresProps } from '../../@types/ferdium-components.types';
7import Layout from '../../components/settings/releaseNotes/ReleaseNotesLayout';
8import ErrorBoundary from '../../components/util/ErrorBoundary';
9
10class SettingsContainer extends Component<StoresProps> {
11 portalRoot: any;
12
13 el: HTMLDivElement;
14
15 constructor(props: StoresProps) {
16 super(props);
17
18 this.portalRoot = document.querySelector('#portalContainer');
19 this.el = document.createElement('div');
20 }
21
22 componentDidMount(): void {
23 this.portalRoot.append(this.el);
24 }
25
26 componentWillUnmount(): void {
27 this.el.remove();
28 }
29
30 render(): ReactPortal {
31 return ReactDOM.createPortal(
32 <ErrorBoundary>
33 <Layout {...this.props}>
34 <Outlet />
35 </Layout>
36 </ErrorBoundary>,
37 this.el,
38 );
39 }
40}
41
42export default inject('stores', 'actions')(observer(SettingsContainer));