feat: notify transaction instead of operations

This commit is contained in:
Lucas.Xu
2022-10-13 11:55:16 +08:00
parent 8895430d9e
commit 71b1769eee
4 changed files with 8 additions and 7 deletions

View File

@ -109,8 +109,8 @@ class _MyHomePageState extends State<MyHomePage> {
..handler = (message) { ..handler = (message) {
debugPrint(message); debugPrint(message);
}; };
_editorState!.operationStream.listen((event) { _editorState!.transactionStream.listen((event) {
debugPrint('Operation: ${event.toJson()}'); debugPrint('Transaction: ${event.toJson()}');
}); });
return Container( return Container(
color: darkMode ? Colors.black : Colors.white, color: darkMode ? Colors.black : Colors.white,

View File

@ -9,7 +9,7 @@ import 'package:appflowy_editor/src/core/location/selection.dart';
import 'package:appflowy_editor/src/core/document/document.dart'; import 'package:appflowy_editor/src/core/document/document.dart';
import 'package:appflowy_editor/src/core/transform/operation.dart'; import 'package:appflowy_editor/src/core/transform/operation.dart';
import 'package:appflowy_editor/src/core/transform/transaction.dart'; import 'package:appflowy_editor/src/core/transform/transaction.dart';
import 'package:appflowy_editor/src/undo_manager.dart'; import 'package:appflowy_editor/src/history/undo_manager.dart';
class ApplyOptions { class ApplyOptions {
/// This flag indicates that /// This flag indicates that
@ -63,8 +63,8 @@ class EditorState {
EditorStyle editorStyle = EditorStyle.defaultStyle(); EditorStyle editorStyle = EditorStyle.defaultStyle();
/// Operation stream. /// Operation stream.
Stream<Operation> get operationStream => _observer.stream; Stream<Transaction> get transactionStream => _observer.stream;
final StreamController<Operation> _observer = StreamController.broadcast(); final StreamController<Transaction> _observer = StreamController.broadcast();
final UndoManager undoManager = UndoManager(); final UndoManager undoManager = UndoManager();
Selection? _cursorSelection; Selection? _cursorSelection;
@ -140,6 +140,8 @@ class EditorState {
_applyOperation(op); _applyOperation(op);
} }
_observer.add(transaction);
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
updateCursorSelection(transaction.afterSelection); updateCursorSelection(transaction.afterSelection);
}); });
@ -187,6 +189,5 @@ class EditorState {
} else if (op is UpdateTextOperation) { } else if (op is UpdateTextOperation) {
document.updateText(op.path, op.delta); document.updateText(op.path, op.delta);
} }
_observer.add(op);
} }
} }

View File

@ -1,6 +1,6 @@
import 'dart:collection'; import 'dart:collection';
import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:appflowy_editor/appflowy_editor.dart';
import 'package:appflowy_editor/src/undo_manager.dart'; import 'package:appflowy_editor/src/history/undo_manager.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
void main() async { void main() async {