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)), );