2021-07-24 14:05:49 +08:00
|
|
|
import 'package:app_flowy/workspace/domain/i_view.dart';
|
|
|
|
import 'package:app_flowy/workspace/infrastructure/repos/view_repo.dart';
|
2021-10-31 17:24:55 +08:00
|
|
|
import 'package:flowy_infra/notifier.dart';
|
2021-07-24 14:05:49 +08:00
|
|
|
import 'package:flowy_sdk/protobuf/flowy-workspace/errors.pb.dart';
|
|
|
|
import 'package:dartz/dartz.dart';
|
2021-10-12 13:07:41 +08:00
|
|
|
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
2021-07-24 14:05:49 +08:00
|
|
|
|
|
|
|
class IViewImpl extends IView {
|
|
|
|
ViewRepository repo;
|
|
|
|
|
|
|
|
IViewImpl({required this.repo});
|
|
|
|
|
|
|
|
@override
|
2021-10-12 13:07:41 +08:00
|
|
|
View get view => repo.view;
|
|
|
|
|
|
|
|
@override
|
2021-10-16 21:22:59 +08:00
|
|
|
Future<Either<Unit, WorkspaceError>> delete() {
|
|
|
|
return repo.delete().then((result) {
|
2021-10-12 14:55:54 +08:00
|
|
|
return result.fold(
|
|
|
|
(_) => left(unit),
|
|
|
|
(error) => right(error),
|
|
|
|
);
|
|
|
|
});
|
2021-10-12 13:07:41 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
2021-10-12 14:55:54 +08:00
|
|
|
Future<Either<View, WorkspaceError>> rename(String newName) {
|
2021-10-12 13:07:41 +08:00
|
|
|
return repo.updateView(name: newName);
|
2021-07-24 14:05:49 +08:00
|
|
|
}
|
2021-10-20 22:19:01 +08:00
|
|
|
|
|
|
|
@override
|
|
|
|
Future<Either<Unit, WorkspaceError>> duplicate() {
|
|
|
|
return repo.duplicate();
|
|
|
|
}
|
2021-07-24 14:05:49 +08:00
|
|
|
}
|
|
|
|
|
2021-10-12 13:07:41 +08:00
|
|
|
class IViewListenerImpl extends IViewListener {
|
|
|
|
final ViewListenerRepository repo;
|
|
|
|
IViewListenerImpl({
|
2021-07-24 14:05:49 +08:00
|
|
|
required this.repo,
|
|
|
|
});
|
|
|
|
|
|
|
|
@override
|
2021-10-31 17:24:55 +08:00
|
|
|
void start() {
|
|
|
|
repo.start();
|
2021-07-24 14:05:49 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
2021-10-12 13:07:41 +08:00
|
|
|
Future<void> stop() async {
|
2021-07-24 14:05:49 +08:00
|
|
|
await repo.close();
|
|
|
|
}
|
2021-10-31 17:24:55 +08:00
|
|
|
|
|
|
|
@override
|
|
|
|
PublishNotifier<DeleteNotifierValue> get deletedNotifier => repo.deletedNotifier;
|
|
|
|
|
|
|
|
@override
|
|
|
|
PublishNotifier<UpdateNotifierValue> get updatedNotifier => repo.updatedNotifier;
|
|
|
|
|
|
|
|
@override
|
2021-11-04 13:22:35 +08:00
|
|
|
PublishNotifier<RestoreNotifierValue> get restoredNotifier => repo.restoredNotifier;
|
2021-07-24 14:05:49 +08:00
|
|
|
}
|