import React, { useRef, useState, useEffect } from "react"; import styles from "./KeyboardModal.module.css"; const KeyboardModal = ({ textAreaRef, isOpen, setIsOpen, isModalOpen }) => { const keyboardModalRef = useRef(null); const handleClickOutside = (event) => { if ( keyboardModalRef.current && !keyboardModalRef.current.contains(event.target) ) { setIsOpen(false); } }; const handleKeyDown = (event) => { if (!isModalOpen && event.ctrlKey && event.key === "k") { event.preventDefault(); if (textAreaRef.current) { textAreaRef.current.blur(); } setIsOpen(true); } else if (isOpen && event.key === "Escape") { setIsOpen(false); if (textAreaRef.current) { textAreaRef.current.focus(); } } }; useEffect(() => { document.addEventListener("mousedown", handleClickOutside); document.addEventListener("keydown", handleKeyDown); return () => { document.removeEventListener("mousedown", handleClickOutside); document.removeEventListener("keydown", handleKeyDown); }; }, [isOpen]); return ( isOpen && (
Keyboard Shortcuts
Ctrl + K Open Keyboard Shortcuts
Ctrl + L Open Language Selector
Ctrl + S Save Bin