Компоненты
HotkeysHelp
Экран справки, собранный из того же списка клавиш.
Экран справки по горячим клавишам, открывается по «?». Собирается из того же массива, который отдан обработчику.
Пример
import { HotkeysHelp } from "@toimetdev/pathlogs-core";
const hotkeys = [
{ keys: "g d", label: "Проекты", group: "Навигация", handler: () => router.push("/dashboard") },
{ keys: "g m", label: "Мои задачи", group: "Навигация", handler: () => router.push("/my") },
{ keys: "d", label: "Отметить выполненной", group: "Доска", handler: markDone },
{ keys: "mod+k", label: "Поиск", allowInInput: true, handler: openPalette },
];
<HotkeysHelp hotkeys={hotkeys} hint="«g» — лидер: нажмите g, затем вторую клавишу." />Отдельно вызывать useHotkeys не нужно — компонент делает это сам и добавляет к списку клавишу вызова справки.
Один список
В справку попадают только записи с подписью. Клавиши без label считаются служебными — закрыть окно, подтвердить, — и в списке были бы шумом.
Разделы идут в порядке первого появления, а не по алфавиту: так виден замысел автора, а алфавит перемешал бы связанные группы.
Пропсы
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
hotkeys* | Hotkey[] | — | Тот же список, что отдан бы в useHotkeys. |
hotkey | string | "?" | Клавиша вызова справки. |
title | string | "Keyboard shortcuts" | Заголовок окна. |
hint | string | — | Пояснение внизу — например, про клавишу-лидер. |
hotkeys*Hotkey[]Тот же список, что отдан бы в useHotkeys.
hotkeystringпо умолчанию: "?"
Клавиша вызова справки.
titlestringпо умолчанию: "Keyboard shortcuts"
Заголовок окна.
hintstringПояснение внизу — например, про клавишу-лидер.
Записи вроде mod, arrowup и escape показываются как ⌘/Ctrl, ↑ и Esc: имя события читается хуже, чем сам символ.