i_view.dart 948 B

1234567891011121314151617181920212223242526272829303132
  1. import 'package:flowy_sdk/protobuf/flowy-workspace-infra/view_create.pb.dart';
  2. import 'package:dartz/dartz.dart';
  3. import 'package:flowy_infra/notifier.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart';
  5. typedef ViewUpdatedCallback = void Function(Either<View, WorkspaceError>);
  6. typedef DeleteNotifierValue = Either<View, WorkspaceError>;
  7. typedef UpdateNotifierValue = Either<View, WorkspaceError>;
  8. typedef RestoreNotifierValue = Either<View, WorkspaceError>;
  9. abstract class IView {
  10. View get view;
  11. Future<Either<Unit, WorkspaceError>> delete();
  12. Future<Either<View, WorkspaceError>> rename(String newName);
  13. Future<Either<Unit, WorkspaceError>> duplicate();
  14. }
  15. abstract class IViewListener {
  16. void start();
  17. PublishNotifier<UpdateNotifierValue> get updatedNotifier;
  18. PublishNotifier<DeleteNotifierValue> get deletedNotifier;
  19. PublishNotifier<RestoreNotifierValue> get restoredNotifier;
  20. Future<void> stop();
  21. }