gaojintao01
Add files using Git LFS
f8b5d42
import React, { useEffect, useState } from "react";
import { X } from "@phosphor-icons/react";
import { useTranslation } from "react-i18next";
import {
SHORTCUTS,
isMac,
KEYBOARD_SHORTCUTS_HELP_EVENT,
} from "@/utils/keyboardShortcuts";
export default function KeyboardShortcutsHelp() {
const [isOpen, setIsOpen] = useState(false);
const { t } = useTranslation();
useEffect(() => {
window.addEventListener(KEYBOARD_SHORTCUTS_HELP_EVENT, () =>
setIsOpen((prev) => !prev)
);
return () => {
window.removeEventListener(KEYBOARD_SHORTCUTS_HELP_EVENT, () =>
setIsOpen(false)
);
};
}, []);
if (!isOpen) return null;
return (
<div className="fixed inset-0 z-50 overflow-auto bg-black bg-opacity-50 flex items-center justify-center">
<div className="relative bg-theme-bg-secondary rounded-lg p-6 max-w-2xl w-full mx-4">
<div className="flex justify-between items-center mb-6">
<h2 className="text-xl font-semibold text-white">
{t("keyboard-shortcuts.title")}
</h2>
<button
onClick={() => setIsOpen(false)}
className="text-white hover:text-gray-300"
aria-label="Close"
>
<X size={24} />
</button>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
{Object.entries(SHORTCUTS).map(([key, shortcut]) => (
<div
key={key}
className="flex items-center justify-between p-3 bg-theme-bg-hover rounded-lg"
>
<span className="text-white">
{t(`keyboard-shortcuts.shortcuts.${shortcut.translationKey}`)}
</span>
<kbd className="px-2 py-1 bg-theme-bg-secondary text-white rounded border border-gray-600">
{isMac ? key : key.replace("⌘", "Ctrl")}
</kbd>
</div>
))}
</div>
</div>
</div>
);
}