import React, { useEffect, useState } from 'react'; import GithubCorner from '@uiw/react-github-corners'; import { Github } from '@uiw/react-shields'; import MarkdownPreview from '@uiw/react-markdown-preview'; import KeyBoard from '@uiw/react-mac-keyboard'; import '@wcj/dark-mode'; import Footer from './components/Footer'; import styles from './styles/index.module.less'; import DocumentStr from '../README.md'; import hotkeys from '..'; import pkg from '../package.json'; export default function AppRoot() { const [keyCode, setKeyCode] = useState([]); const [keyStr, setKeyStr] = useState([]); useEffect(() => { document.addEventListener('keyup', onKeyUpEvent); function pkeys(keys, key) { if (keys.indexOf(key) === -1) keys.push(key); return keys; } function pkeysStr(keysStr, key) { if (keysStr.indexOf(key) === -1) keysStr.push(key); return keysStr; } hotkeys('*', (evn) => { evn.preventDefault(); const keys = []; const kStr = []; if (hotkeys.shift) { pkeys(keys, 16); pkeysStr(kStr, 'shift'); } if (hotkeys.ctrl) { pkeys(keys, 17); pkeysStr(kStr, 'ctrl'); } if (hotkeys.alt) { pkeys(keys, 18); pkeysStr(kStr, 'alt'); } if (hotkeys.control) { pkeys(keys, 17); pkeysStr(kStr, 'control'); } if (hotkeys.command) { pkeys(keys, 91); pkeysStr(kStr, 'command'); } kStr.push(evn.keyCode); if (keys.indexOf(evn.keyCode) === -1) keys.push(evn.keyCode); setKeyCode(keys); setKeyStr(kStr); }); return () => { document.removeEventListener('keyup', onKeyUpEvent); }; }, []); let DocumentStrSource = DocumentStr; if (DocumentStrSource) DocumentStrSource = DocumentStr.replace(/([\s\S]*)/, ''); const openVersionWebsite = (e) => { if (e.target && e.target.value) { window.location.href = e.target.value; } }; const onKeyUpEvent = () => { setKeyCode([]); setKeyStr([]); }; const onKeyBoardMouseDown = (item) => { if (item.keycode > -1) { setKeyStr([item.keycode]); } }; const onKeyBoardMouseUp = () => setKeyStr([]); return (
); }