mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
feat: delete slash when using the popuplist and pressing enter key
This commit is contained in:
parent
1ece5cfd9e
commit
6e71ec23a1
@ -35,7 +35,7 @@ class FlowyRichText extends StatefulWidget {
|
||||
this.cursorHeight,
|
||||
this.cursorWidth = 2.0,
|
||||
this.textSpanDecorator,
|
||||
this.placeholderText = ' ',
|
||||
this.placeholderText = 'Type \'/\' for commands',
|
||||
this.placeholderTextSpanDecorator,
|
||||
required this.textNode,
|
||||
required this.editorState,
|
||||
|
@ -211,6 +211,7 @@ class _PopupListWidgetState extends State<PopupListWidget> {
|
||||
|
||||
if (event.logicalKey == LogicalKeyboardKey.enter) {
|
||||
if (0 <= selectedIndex && selectedIndex < widget.items.length) {
|
||||
_deleteSlash();
|
||||
widget.items[selectedIndex].handler(widget.editorState);
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
@ -239,6 +240,22 @@ class _PopupListWidgetState extends State<PopupListWidget> {
|
||||
}
|
||||
return KeyEventResult.ignored;
|
||||
}
|
||||
|
||||
void _deleteSlash() {
|
||||
final selection =
|
||||
widget.editorState.service.selectionService.currentSelection.value;
|
||||
final nodes =
|
||||
widget.editorState.service.selectionService.currentSelectedNodes;
|
||||
if (selection != null && nodes.length == 1) {
|
||||
TransactionBuilder(widget.editorState)
|
||||
..deleteText(
|
||||
nodes.first as TextNode,
|
||||
selection.start.offset - 1,
|
||||
1,
|
||||
)
|
||||
..commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class _PopupListItemWidget extends StatelessWidget {
|
||||
|
Loading…
Reference in New Issue
Block a user