import React, { useRef, useState, useEffect } from 'react' // eslint-disable-line import { ModalDialogProps } from './types' // eslint-disable-line import './remix-ui-modal-dialog.css' export const ModalDialog = (props: ModalDialogProps) => { const [state, setState] = useState({ toggleBtn: true }) const modal = useRef(null) const handleHide = () => { props.hide() } useEffect( () => { modal.current.focus() }, [] ) const modalKeyEvent = (keyCode) => { if (keyCode === 27) { // Esc if (props.cancel && props.cancel.fn) props.cancel.fn() handleHide() } else if (keyCode === 13) { // Enter enterHandler() } else if (keyCode === 37) { // todo && footerIsActive) { // Arrow Left setState((prevState) => { return { ...prevState, toggleBtn: true } }) } else if (keyCode === 39) { // todo && footerIsActive) { // Arrow Right setState((prevState) => { return { ...prevState, toggleBtn: false } }) } } const enterHandler = () => { if (state.toggleBtn) { if (props.ok && props.ok.fn) props.ok.fn() } else { if (props.cancel && props.cancel.fn) props.cancel.fn() } handleHide() } return (<>