util.dart 1016 B

123456789101112131415161718192021222324252627282930313233343536
  1. import 'package:appflowy/startup/plugin/plugin.dart';
  2. import 'package:appflowy/workspace/application/view/view_listener.dart';
  3. import 'package:dartz/dartz.dart';
  4. import 'package:appflowy_backend/log.dart';
  5. import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart';
  6. import 'package:flutter/material.dart';
  7. class ViewPluginNotifier extends PluginNotifier<Option<DeletedViewPB>> {
  8. final ViewListener? _viewListener;
  9. ViewPB view;
  10. @override
  11. final ValueNotifier<Option<DeletedViewPB>> isDeleted = ValueNotifier(none());
  12. ViewPluginNotifier({
  13. required this.view,
  14. }) : _viewListener = ViewListener(viewId: view.id) {
  15. _viewListener?.start(
  16. onViewUpdated: (updatedView) {
  17. view = updatedView;
  18. },
  19. onViewMoveToTrash: (result) {
  20. result.fold(
  21. (deletedView) => isDeleted.value = some(deletedView),
  22. (err) => Log.error(err),
  23. );
  24. },
  25. );
  26. }
  27. @override
  28. void dispose() {
  29. isDeleted.dispose();
  30. _viewListener?.stop();
  31. }
  32. }