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();
}
}