hedgedoc/src/components/editor-page/splitter/hooks/use-keyboard-shortcuts.ts
Tilman Vatteroth 5ba1e9e565 feat(splitter): add snapping, icon and buttons to splitter
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2022-10-21 11:44:17 +02:00

38 lines
1.1 KiB
TypeScript

/*
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { useEffect } from 'react'
/**
* Binds global keyboard shortcuts for setting the split value.
*
* @param setRelativeSplitValue A function that is used to set the split value
*/
export const useKeyboardShortcuts = (setRelativeSplitValue: (value: number) => void) => {
useEffect(() => {
const shortcutHandler = (event: KeyboardEvent): void => {
if (event.ctrlKey && event.altKey && event.key === 'b') {
setRelativeSplitValue(50)
event.preventDefault()
}
if (event.ctrlKey && event.altKey && event.key === 'v') {
setRelativeSplitValue(0)
event.preventDefault()
}
if (event.ctrlKey && event.altKey && (event.key === 'e' || event.key === '€')) {
setRelativeSplitValue(100)
event.preventDefault()
}
}
document.addEventListener('keydown', shortcutHandler, false)
return () => {
document.removeEventListener('keydown', shortcutHandler, false)
}
}, [setRelativeSplitValue])
}