feat: add hotkeys (#986)

This commit is contained in:
Meier Lukas
2024-08-18 12:07:00 +02:00
committed by GitHub
parent 3eb90968ac
commit 7521ef0519
3 changed files with 7 additions and 2 deletions

View File

@@ -2,6 +2,7 @@
import { useCallback } from "react"; import { useCallback } from "react";
import { Group, Menu } from "@mantine/core"; import { Group, Menu } from "@mantine/core";
import { useHotkeys } from "@mantine/hooks";
import { import {
IconBox, IconBox,
IconBoxAlignTop, IconBoxAlignTop,
@@ -137,6 +138,8 @@ const EditModeMenu = () => {
setEditMode(true); setEditMode(true);
}, [board, isEditMode, saveBoard, setEditMode]); }, [board, isEditMode, saveBoard, setEditMode]);
useHotkeys([["mod+e", toggle]]);
return ( return (
<HeaderButton onClick={toggle} loading={isPending}> <HeaderButton onClick={toggle} loading={isPending}>
{isEditMode ? <IconPencilOff stroke={1.5} /> : <IconPencil stroke={1.5} />} {isEditMode ? <IconPencilOff stroke={1.5} /> : <IconPencil stroke={1.5} />}

View File

@@ -5,7 +5,7 @@ import { useCallback, useEffect } from "react";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import { Center, Menu, Stack, Text, useMantineColorScheme } from "@mantine/core"; import { Center, Menu, Stack, Text, useMantineColorScheme } from "@mantine/core";
import { useTimeout } from "@mantine/hooks"; import { useHotkeys, useTimeout } from "@mantine/hooks";
import { import {
IconCheck, IconCheck,
IconHome, IconHome,
@@ -33,6 +33,7 @@ interface UserAvatarMenuProps {
export const UserAvatarMenu = ({ children }: UserAvatarMenuProps) => { export const UserAvatarMenu = ({ children }: UserAvatarMenuProps) => {
const t = useScopedI18n("common.userAvatar.menu"); const t = useScopedI18n("common.userAvatar.menu");
const { colorScheme, toggleColorScheme } = useMantineColorScheme(); const { colorScheme, toggleColorScheme } = useMantineColorScheme();
useHotkeys([["mod+J", toggleColorScheme]]);
const ColorSchemeIcon = colorScheme === "dark" ? IconSun : IconMoon; const ColorSchemeIcon = colorScheme === "dark" ? IconSun : IconMoon;

View File

@@ -15,7 +15,7 @@ import {
useMantineColorScheme, useMantineColorScheme,
useMantineTheme, useMantineTheme,
} from "@mantine/core"; } from "@mantine/core";
import { useDisclosure } from "@mantine/hooks"; import { getHotkeyHandler, useDisclosure } from "@mantine/hooks";
import { Link, RichTextEditor, useRichTextEditorContext } from "@mantine/tiptap"; import { Link, RichTextEditor, useRichTextEditorContext } from "@mantine/tiptap";
import { import {
IconCheck, IconCheck,
@@ -231,6 +231,7 @@ export function Notebook({ options, isEditMode, boardId, itemId }: WidgetCompone
p={0} p={0}
mt={0} mt={0}
h="100%" h="100%"
onKeyDown={isEditing ? getHotkeyHandler([["mod+s", handleEditToggle]]) : undefined}
editor={editor} editor={editor}
styles={(theme) => ({ styles={(theme) => ({
root: { root: {