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 --- .../settings/releaseNotes/ReleaseNotesLayout.tsx | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/components/settings/releaseNotes/ReleaseNotesLayout.tsx (limited to 'src/components/settings/releaseNotes/ReleaseNotesLayout.tsx') diff --git a/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx b/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx new file mode 100644 index 000000000..ee0ba75a8 --- /dev/null +++ b/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx @@ -0,0 +1,79 @@ +import { Component } from 'react'; +import { inject, observer } from 'mobx-react'; +import { defineMessages, injectIntl } from 'react-intl'; + +import { mdiClose } from '@mdi/js'; +import { Outlet } from 'react-router-dom'; +import { StoresProps } from '../../../@types/ferdium-components.types'; +import ErrorBoundary from '../../util/ErrorBoundary'; +import Appear from '../../ui/effects/Appear'; +import Icon from '../../ui/icon'; +import { isEscKeyPress } from '../../../jsUtils'; + +const messages = defineMessages({ + closeSettings: { + id: 'settings.app.closeSettings', + defaultMessage: 'Close settings', + }, +}); + +interface IProps extends StoresProps { + intl: any; +} + +class ReleaseNotesLayout extends Component { + componentDidMount() { + document.addEventListener('keydown', this.handleKeyDown.bind(this), false); + } + + componentWillUnmount() { + document.removeEventListener( + 'keydown', + // eslint-disable-next-line unicorn/no-invalid-remove-event-listener + this.handleKeyDown.bind(this), + false, + ); + } + + handleKeyDown(e) { + if (isEscKeyPress(e.keyCode)) { + this.props.actions.ui.closeSettings(); + } + } + + render() { + const { closeSettings } = this.props.actions.ui; + + const { intl } = this.props; + + return ( + +
+ + +
+ + +
+ ); + } +} + +export default injectIntl<'intl', IProps>( + inject('stores', 'actions')(observer(ReleaseNotesLayout)), +); -- cgit v1.2.3-70-g09d2