From 3bb1ca7825a0381ddd8dbe7f44f7dcf4a788b165 Mon Sep 17 00:00:00 2001 From: André Oliveira <37463445+SpecialAro@users.noreply.github.com> Date: Tue, 19 Jul 2022 12:52:31 +0100 Subject: Feature: Add Release Notes (#491) Co-authored-by: Vijay A Co-authored-by: Ricardo Cino --- src/containers/settings/EditSettingsScreen.tsx | 3 +- src/containers/settings/ReleaseNotesScreen.tsx | 16 ++++++++++ src/containers/settings/ReleaseNotesWindow.tsx | 42 ++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/containers/settings/ReleaseNotesScreen.tsx create mode 100644 src/containers/settings/ReleaseNotesWindow.tsx (limited to 'src/containers/settings') diff --git a/src/containers/settings/EditSettingsScreen.tsx b/src/containers/settings/EditSettingsScreen.tsx index a6c4561dd..fbbed629a 100644 --- a/src/containers/settings/EditSettingsScreen.tsx +++ b/src/containers/settings/EditSettingsScreen.tsx @@ -853,6 +853,7 @@ class EditSettingsScreen extends Component { const { app } = this.props.stores; const { updateStatus, + updateVersion, updateStatusTypes, isClearingAllCache, lockingFeatureEnabled, @@ -860,13 +861,13 @@ class EditSettingsScreen extends Component { const { checkForUpdates, installUpdate, clearAllCache } = this.props.actions.app; const form = this.prepareForm(); - return ( + + + ); + } +} + +export default ReleaseNotesScreen; 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 @@ +import { inject, observer } from 'mobx-react'; +import { Component, ReactPortal } from 'react'; +import ReactDOM from 'react-dom'; +import { Outlet } from 'react-router-dom'; + +import { StoresProps } from '../../@types/ferdium-components.types'; +import Layout from '../../components/settings/releaseNotes/ReleaseNotesLayout'; +import ErrorBoundary from '../../components/util/ErrorBoundary'; + +class SettingsContainer extends Component { + portalRoot: any; + + el: HTMLDivElement; + + constructor(props: StoresProps) { + super(props); + + this.portalRoot = document.querySelector('#portalContainer'); + this.el = document.createElement('div'); + } + + componentDidMount(): void { + this.portalRoot.append(this.el); + } + + componentWillUnmount(): void { + this.el.remove(); + } + + render(): ReactPortal { + return ReactDOM.createPortal( + + + + + , + this.el, + ); + } +} + +export default inject('stores', 'actions')(observer(SettingsContainer)); -- cgit v1.2.3-70-g09d2