i_view_impl.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import 'package:app_flowy/workspace/domain/i_view.dart';
  2. import 'package:app_flowy/workspace/infrastructure/repos/view_repo.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
  4. import 'package:dartz/dartz.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
  6. class IViewImpl extends IView {
  7. ViewRepository repo;
  8. IViewImpl({required this.repo});
  9. @override
  10. View get view => repo.view;
  11. @override
  12. Future<Either<Unit, WorkspaceError>> pushIntoTrash() {
  13. return repo.updateView(isTrash: true).then((result) {
  14. return result.fold(
  15. (_) => left(unit),
  16. (error) => right(error),
  17. );
  18. });
  19. }
  20. @override
  21. Future<Either<View, WorkspaceError>> rename(String newName) {
  22. return repo.updateView(name: newName);
  23. }
  24. }
  25. class IViewListenerImpl extends IViewListener {
  26. final ViewListenerRepository repo;
  27. IViewListenerImpl({
  28. required this.repo,
  29. });
  30. @override
  31. void start({ViewUpdatedCallback? updatedCallback}) {
  32. repo.startWatching(update: updatedCallback);
  33. }
  34. @override
  35. Future<void> stop() async {
  36. await repo.close();
  37. }
  38. }