i_doc.dart 937 B

12345678910111213141516171819202122232425262728293031
  1. import 'dart:convert';
  2. import 'package:flowy_editor/flowy_editor.dart';
  3. import 'package:dartz/dartz.dart';
  4. import 'package:flowy_editor/src/model/quill_delta.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-document/doc.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  7. class FlowyDoc implements EditorChangesetSender {
  8. final Doc doc;
  9. final IDoc iDocImpl;
  10. Document data;
  11. FlowyDoc({required this.doc, required this.data, required this.iDocImpl}) {
  12. data.sender = this;
  13. }
  14. String get id => doc.id;
  15. @override
  16. void sendDelta(Delta delta) {
  17. final json = jsonEncode(delta.toJson());
  18. iDocImpl.applyChangeset(json: json);
  19. }
  20. }
  21. abstract class IDoc {
  22. Future<Either<Doc, WorkspaceError>> readDoc();
  23. Future<Either<Unit, WorkspaceError>> saveDoc({String? json});
  24. Future<Either<Unit, WorkspaceError>> applyChangeset({String? json});
  25. Future<Either<Unit, WorkspaceError>> closeDoc();
  26. }