feat: implement remove subtype if text node is empty when pressing enter key

This commit is contained in:
Lucas.Xu 2022-08-02 20:08:32 +08:00
parent a1be60721e
commit 397f43cbe1

View File

@ -29,6 +29,25 @@ FlowyKeyEventHandler enterInEdgeOfTextNodeHandler = (editorState, event) {
final textNode = nodes.first as TextNode;
if (textNode.selectable!.end() == selection.end) {
if (textNode.subtype != null && textNode.delta.length == 0) {
TransactionBuilder(editorState)
..deleteNode(textNode)
..insertNode(
textNode.path,
textNode.copyWith(
children: LinkedList(),
delta: Delta([TextInsert('')]),
attributes: {},
),
)
..afterSelection = Selection.collapsed(
Position(
path: textNode.path,
offset: 0,
),
)
..commit();
} else {
final needCopyAttributes = StyleKey.globalStyleKeys
.where((key) => key != StyleKey.heading)
.contains(textNode.subtype);
@ -48,6 +67,8 @@ FlowyKeyEventHandler enterInEdgeOfTextNodeHandler = (editorState, event) {
),
)
..commit();
}
return KeyEventResult.handled;
} else if (textNode.selectable!.start() == selection.start) {
TransactionBuilder(editorState)