import React, { useState, useMemo } from 'react'; import './ShortcutPanel.css'; const DEFAULT_ITEMS = [ { name: '保存', key: 'Ctrl + S' }, { name: '搜索', key: 'Ctrl + K' }, { name: '新建', key: 'Ctrl + N' }, { name: '刷新', key: 'F5' }, { name: '关闭页签', key: 'Ctrl + W' }, { name: '全屏', key: 'F11' }, { name: '帮助', key: '?' }, { name: '命令面板', key: 'Ctrl + P' } ]; export default function ShortcutPanel({ items = DEFAULT_ITEMS }) { const [q, setQ] = useState(''); const filtered = useMemo(() => { const s = q.trim().toLowerCase(); if (!s) return items; return items.filter((it) => it.name.toLowerCase().indexOf(s) >= 0 || it.key.toLowerCase().indexOf(s) >= 0); }, [q, items]); return (
setQ(e.target.value)} />
{!filtered.length &&
无匹配快捷键
} {filtered.map((it, i) => (
{it.name} {it.key}
))}
); }