Files
Trilium/apps/client/src/widgets/react/KeyboardShortcut.tsx

34 lines
1.0 KiB
TypeScript
Raw Normal View History

import { ActionKeyboardShortcut, KeyboardActionNames } from "@triliumnext/commons";
import { useEffect, useState } from "preact/hooks";
import keyboard_actions from "../../services/keyboard_actions";
2025-08-22 17:31:06 +03:00
import { separateByCommas } from "./react_utils";
interface KeyboardShortcutProps {
actionName: KeyboardActionNames;
}
export default function KeyboardShortcut({ actionName }: KeyboardShortcutProps) {
const [ action, setAction ] = useState<ActionKeyboardShortcut>();
useEffect(() => {
keyboard_actions.getAction(actionName).then(setAction);
}, []);
if (!action) {
return <></>;
}
return (
<>
{action.effectiveShortcuts?.map((shortcut, i) => {
const keys = shortcut.split("+");
2025-08-22 17:31:06 +03:00
return separateByCommas(keys
.map((key, i) => (
<>
<kbd>{key}</kbd> {i + 1 < keys.length && "+ "}
</>
2025-08-22 17:31:06 +03:00
)))
})}
</>
);
}