mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
feat: implement remove subtype if text node is empty when pressing enter key
This commit is contained in:
parent
a1be60721e
commit
397f43cbe1
@ -29,25 +29,46 @@ FlowyKeyEventHandler enterInEdgeOfTextNodeHandler = (editorState, event) {
|
||||
|
||||
final textNode = nodes.first as TextNode;
|
||||
if (textNode.selectable!.end() == selection.end) {
|
||||
final needCopyAttributes = StyleKey.globalStyleKeys
|
||||
.where((key) => key != StyleKey.heading)
|
||||
.contains(textNode.subtype);
|
||||
TransactionBuilder(editorState)
|
||||
..insertNode(
|
||||
textNode.path.next,
|
||||
textNode.copyWith(
|
||||
children: LinkedList(),
|
||||
delta: Delta([TextInsert('')]),
|
||||
attributes: needCopyAttributes ? textNode.attributes : {},
|
||||
),
|
||||
)
|
||||
..afterSelection = Selection.collapsed(
|
||||
Position(
|
||||
path: textNode.path.next,
|
||||
offset: 0,
|
||||
),
|
||||
)
|
||||
..commit();
|
||||
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);
|
||||
TransactionBuilder(editorState)
|
||||
..insertNode(
|
||||
textNode.path.next,
|
||||
textNode.copyWith(
|
||||
children: LinkedList(),
|
||||
delta: Delta([TextInsert('')]),
|
||||
attributes: needCopyAttributes ? textNode.attributes : {},
|
||||
),
|
||||
)
|
||||
..afterSelection = Selection.collapsed(
|
||||
Position(
|
||||
path: textNode.path.next,
|
||||
offset: 0,
|
||||
),
|
||||
)
|
||||
..commit();
|
||||
}
|
||||
|
||||
return KeyEventResult.handled;
|
||||
} else if (textNode.selectable!.start() == selection.start) {
|
||||
TransactionBuilder(editorState)
|
||||
|
Loading…
Reference in New Issue
Block a user