feat: navigate tags with arrow keys

This commit is contained in:
Antonella Sgarlatta
2021-06-02 20:18:59 -03:00
parent 434ea3258e
commit 672331faaa
2 changed files with 40 additions and 12 deletions

View File

@@ -36,6 +36,27 @@ export const NoteTag: FunctionalComponent<Props> = ({ appState, tag }) => {
}
};
const onKeyUp = (event: KeyboardEvent) => {
let previousTagElement;
let nextTagElement;
switch (event.key) {
case "Backspace":
deleteTag();
break;
case "ArrowLeft":
previousTagElement = appState.activeNote.getPreviousTagElement(tag);
previousTagElement?.focus();
break;
case "ArrowRight":
nextTagElement = appState.activeNote.getNextTagElement(tag);
nextTagElement?.focus();
break;
default:
return;
}
};
return (
<button
ref={(element) => {
@@ -46,11 +67,7 @@ export const NoteTag: FunctionalComponent<Props> = ({ appState, tag }) => {
className="sn-tag pl-1 pr-2 mr-2"
style={{ maxWidth: tagsContainerMaxWidth }}
onClick={onTagClick}
onKeyUp={(event) => {
if (event.key === 'Backspace') {
deleteTag();
}
}}
onKeyUp={onKeyUp}
onFocus={onFocus}
onBlur={onBlur}
>