mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 05:25:40 +09:00
25 lines
1.0 KiB
TypeScript
25 lines
1.0 KiB
TypeScript
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
import {isIMEComposing} from '@app/features/messaging/utils/IMECompositionUtils';
|
|
import {mergeRegister} from '@lexical/utils';
|
|
import {
|
|
COMMAND_PRIORITY_CRITICAL,
|
|
KEY_ARROW_DOWN_COMMAND,
|
|
KEY_ARROW_UP_COMMAND,
|
|
KEY_ENTER_COMMAND,
|
|
KEY_ESCAPE_COMMAND,
|
|
KEY_TAB_COMMAND,
|
|
type LexicalEditor,
|
|
} from 'lexical';
|
|
|
|
export function registerComposerIMECommandGuard(editor: LexicalEditor): () => void {
|
|
const preserveNativeIMEEvent = (event: KeyboardEvent | null): boolean => event != null && isIMEComposing(event);
|
|
return mergeRegister(
|
|
editor.registerCommand(KEY_ENTER_COMMAND, preserveNativeIMEEvent, COMMAND_PRIORITY_CRITICAL),
|
|
editor.registerCommand(KEY_ARROW_UP_COMMAND, preserveNativeIMEEvent, COMMAND_PRIORITY_CRITICAL),
|
|
editor.registerCommand(KEY_ARROW_DOWN_COMMAND, preserveNativeIMEEvent, COMMAND_PRIORITY_CRITICAL),
|
|
editor.registerCommand(KEY_ESCAPE_COMMAND, preserveNativeIMEEvent, COMMAND_PRIORITY_CRITICAL),
|
|
editor.registerCommand(KEY_TAB_COMMAND, preserveNativeIMEEvent, COMMAND_PRIORITY_CRITICAL),
|
|
);
|
|
}
|