import React, { useRef, useCallback, memo } from 'react' import { ConfirmationRequest } from '../reducers/Global' import { Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button } from '@material-ui/core' import { KeyCodes } from '../utils/KeyCodes' function ConfirmationDialog(props: { confirmationRequests: Array }) { const request = props.confirmationRequests[0] const yesRef = useRef() const noRef = useRef() const arrowKeyHandler = useCallback((event: KeyboardEvent) => { const isArrowKey = event.keyCode === KeyCodes.arrow_left || event.keyCode === KeyCodes.arrow_right if (!isArrowKey) { return } event.stopPropagation() if (document.activeElement === noRef.current) { yesRef.current && yesRef.current.focus() } else { noRef.current && noRef.current.focus() } }, []) const confirm = React.useCallback(() => { request && request.callback(true) }, [request]) const reject = React.useCallback(() => { request && request.callback(false) }, [request]) if (!request) { return null } return ( {request.title} {request.inquiry} ) } export default memo(ConfirmationDialog)