Fix hotkeys breaking newline handling
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
5161b3cba9
commit
eedd894ba8
1 changed files with 69 additions and 65 deletions
|
@ -474,75 +474,79 @@ const AutosuggestPlugin = ({
|
||||||
}
|
}
|
||||||
}, [resolution, suggestionsHidden, suggestions.isEmpty()]);
|
}, [resolution, suggestionsHidden, suggestions.isEmpty()]);
|
||||||
|
|
||||||
useEffect(() => mergeRegister(
|
useEffect(() => {
|
||||||
editor.registerCommand<KeyboardEvent>(
|
if (resolution === null) return;
|
||||||
KEY_ARROW_UP_COMMAND,
|
|
||||||
(payload) => {
|
return mergeRegister(
|
||||||
const event = payload;
|
editor.registerCommand<KeyboardEvent>(
|
||||||
if (suggestions !== null && suggestions.size && selectedSuggestion !== null) {
|
KEY_ARROW_UP_COMMAND,
|
||||||
const newSelectedSuggestion = selectedSuggestion !== 0 ? selectedSuggestion - 1 : suggestions.size - 1;
|
(payload) => {
|
||||||
setSelectedSuggestion(newSelectedSuggestion);
|
const event = payload;
|
||||||
|
if (suggestions !== null && suggestions.size && selectedSuggestion !== null) {
|
||||||
|
const newSelectedSuggestion = selectedSuggestion !== 0 ? selectedSuggestion - 1 : suggestions.size - 1;
|
||||||
|
setSelectedSuggestion(newSelectedSuggestion);
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopImmediatePropagation();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
COMMAND_PRIORITY_LOW,
|
||||||
|
),
|
||||||
|
editor.registerCommand<KeyboardEvent>(
|
||||||
|
KEY_ARROW_DOWN_COMMAND,
|
||||||
|
(payload) => {
|
||||||
|
const event = payload;
|
||||||
|
if (suggestions !== null && suggestions.size && selectedSuggestion !== null) {
|
||||||
|
const newSelectedSuggestion = selectedSuggestion !== suggestions.size - 1 ? selectedSuggestion + 1 : 0;
|
||||||
|
setSelectedSuggestion(newSelectedSuggestion);
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopImmediatePropagation();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
COMMAND_PRIORITY_LOW,
|
||||||
|
),
|
||||||
|
editor.registerCommand<KeyboardEvent>(
|
||||||
|
KEY_TAB_COMMAND,
|
||||||
|
(payload) => {
|
||||||
|
const event = payload;
|
||||||
|
if (suggestions !== null && suggestions.size && selectedSuggestion !== null) {
|
||||||
|
const newSelectedSuggestion = event.shiftKey
|
||||||
|
? (selectedSuggestion !== 0 ? selectedSuggestion - 1 : suggestions.size - 1)
|
||||||
|
: (selectedSuggestion !== suggestions.size - 1 ? selectedSuggestion + 1 : 0);
|
||||||
|
setSelectedSuggestion(newSelectedSuggestion);
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopImmediatePropagation();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
COMMAND_PRIORITY_LOW,
|
||||||
|
),
|
||||||
|
editor.registerCommand<KeyboardEvent>(
|
||||||
|
KEY_ENTER_COMMAND,
|
||||||
|
(payload) => {
|
||||||
|
const event = payload;
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopImmediatePropagation();
|
event.stopImmediatePropagation();
|
||||||
}
|
onSelectSuggestion(selectedSuggestion);
|
||||||
return true;
|
setResolution(null);
|
||||||
},
|
return true;
|
||||||
COMMAND_PRIORITY_LOW,
|
},
|
||||||
),
|
COMMAND_PRIORITY_LOW,
|
||||||
editor.registerCommand<KeyboardEvent>(
|
),
|
||||||
KEY_ARROW_DOWN_COMMAND,
|
editor.registerCommand<KeyboardEvent>(
|
||||||
(payload) => {
|
KEY_ESCAPE_COMMAND,
|
||||||
const event = payload;
|
(payload) => {
|
||||||
if (suggestions !== null && suggestions.size && selectedSuggestion !== null) {
|
const event = payload;
|
||||||
const newSelectedSuggestion = selectedSuggestion !== suggestions.size - 1 ? selectedSuggestion + 1 : 0;
|
|
||||||
setSelectedSuggestion(newSelectedSuggestion);
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopImmediatePropagation();
|
event.stopImmediatePropagation();
|
||||||
}
|
setResolution(null);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
COMMAND_PRIORITY_LOW,
|
COMMAND_PRIORITY_LOW,
|
||||||
),
|
),
|
||||||
editor.registerCommand<KeyboardEvent>(
|
);
|
||||||
KEY_TAB_COMMAND,
|
}, [editor, selectedSuggestion, resolution]);
|
||||||
(payload) => {
|
|
||||||
const event = payload;
|
|
||||||
if (suggestions !== null && suggestions.size && selectedSuggestion !== null) {
|
|
||||||
const newSelectedSuggestion = event.shiftKey
|
|
||||||
? (selectedSuggestion !== 0 ? selectedSuggestion - 1 : suggestions.size - 1)
|
|
||||||
: (selectedSuggestion !== suggestions.size - 1 ? selectedSuggestion + 1 : 0);
|
|
||||||
setSelectedSuggestion(newSelectedSuggestion);
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopImmediatePropagation();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
COMMAND_PRIORITY_LOW,
|
|
||||||
),
|
|
||||||
editor.registerCommand<KeyboardEvent>(
|
|
||||||
KEY_ENTER_COMMAND,
|
|
||||||
(payload) => {
|
|
||||||
const event = payload;
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopImmediatePropagation();
|
|
||||||
onSelectSuggestion(selectedSuggestion);
|
|
||||||
setResolution(null);
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
COMMAND_PRIORITY_LOW,
|
|
||||||
),
|
|
||||||
editor.registerCommand<KeyboardEvent>(
|
|
||||||
KEY_ESCAPE_COMMAND,
|
|
||||||
(payload) => {
|
|
||||||
const event = payload;
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopImmediatePropagation();
|
|
||||||
setResolution(null);
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
COMMAND_PRIORITY_LOW,
|
|
||||||
),
|
|
||||||
), [editor, selectedSuggestion]);
|
|
||||||
|
|
||||||
return resolution === null || editor === null ? null : (
|
return resolution === null || editor === null ? null : (
|
||||||
<LexicalPopoverMenu
|
<LexicalPopoverMenu
|
||||||
|
|
Loading…
Reference in a new issue