import React, { PureComponent } from 'react' import Dialog from './dialog' import { DefaultButton, RedButton } from './buttons' import { PreferenceDialogTemplate } from '../types' interface Props { innerRef: (node: HTMLElement) => void onBack: () => void onConfirm: () => void title: React.ReactNode content: React.ReactNode preferencesDialogTemplate?: PreferenceDialogTemplate } export default class CancelDialog extends PureComponent { static displayName = 'CancelDialog' render() { const { innerRef, onBack, title, content, preferencesDialogTemplate } = this.props const buttons = (
{preferencesDialogTemplate?.cancelDialogButtons!.backValue} {preferencesDialogTemplate?.cancelDialogButtons!.cancelValue}
) return ( {content} ) } componentDidMount() { document.body.addEventListener('keydown', this.handleEsc, false) } componentWillUnmount() { document.body.removeEventListener('keydown', this.handleEsc, false) } handleSubmit = e => { const { onConfirm } = this.props e.preventDefault() onConfirm() } handleEsc = (e: KeyboardEvent) => { const { onConfirm } = this.props // Esc key if (e.keyCode === 27) { onConfirm() } } }