private handleShortcuts()

in packages/roosterjs-react-command-bar/lib/plugins/RoosterCommandBarPlugin.ts [85:137]


    private handleShortcuts(event: PluginEvent) {
        const pluginDomEvent = event as PluginDomEvent;
        const keyboardEvent = pluginDomEvent.rawEvent as KeyboardEvent;
        if (keyboardEvent.defaultPrevented) {
            return;
        }

        const command = getCommandFromEvent(event);
        if (command === RoosterShortcutCommands.None) {
            return;
        }

        const { disableListWorkaround, onShortcutTriggered = NullFunction } = this.options;
        const editor = this.editor;
        let commandExecuted = true;
        switch (command) {
            case RoosterShortcutCommands.Bold:
                toggleBold(editor);
                break;
            case RoosterShortcutCommands.Italic:
                toggleItalic(editor);
                break;
            case RoosterShortcutCommands.Underline:
                toggleUnderline(editor);
                break;
            case RoosterShortcutCommands.Undo:
                editor.undo();
                break;
            case RoosterShortcutCommands.Redo:
                editor.redo();
                break;
            case RoosterShortcutCommands.Bullet:
                (disableListWorkaround ? toggleNonCompatBullet : toggleBullet)(editor);
                break;
            case RoosterShortcutCommands.Numbering:
                (disableListWorkaround ? toggleNonCompatNumbering : toggleNumbering)(editor);
                break;
            case RoosterShortcutCommands.InsertLink:
                this.promptForLink();
                break;
            case RoosterShortcutCommands.ClearFormat:
                this.clearFormat();
                break;
            default:
                commandExecuted = false;
        }

        if (commandExecuted) {
            onShortcutTriggered(command);
            keyboardEvent.preventDefault();
            keyboardEvent.stopPropagation();
        }
    }