insertNewlineInBlockquote function
ExecutionInstruction
insertNewlineInBlockquote({
- required SuperEditorContext editContext,
- required KeyEvent keyEvent,
Implementation
ExecutionInstruction insertNewlineInBlockquote({
required SuperEditorContext editContext,
required KeyEvent keyEvent,
}) {
if (keyEvent.logicalKey != LogicalKeyboardKey.enter) {
return ExecutionInstruction.continueExecution;
}
if (!HardwareKeyboard.instance.isShiftPressed) {
return ExecutionInstruction.continueExecution;
}
if (editContext.composer.selection == null) {
return ExecutionInstruction.continueExecution;
}
final baseNode = editContext.document.getNodeById(editContext.composer.selection!.base.nodeId)!;
final extentNode = editContext.document.getNodeById(editContext.composer.selection!.extent.nodeId)!;
if (baseNode.id != extentNode.id) {
return ExecutionInstruction.continueExecution;
}
if (extentNode is! ParagraphNode) {
return ExecutionInstruction.continueExecution;
}
if (extentNode.getMetadataValue('blockType') != blockquoteAttribution) {
return ExecutionInstruction.continueExecution;
}
final didInsertNewline = editContext.commonOps.insertPlainText('\n');
return didInsertNewline ? ExecutionInstruction.haltExecution : ExecutionInstruction.continueExecution;
}