row_service.dart 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import 'package:dartz/dartz.dart';
  2. import 'package:flowy_sdk/dispatch/dispatch.dart';
  3. import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-grid/block_entities.pb.dart';
  5. import 'package:flowy_sdk/protobuf/flowy-grid/grid_entities.pb.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-grid/row_entities.pb.dart';
  7. import 'package:flowy_sdk/protobuf/flowy-grid/setting_entities.pb.dart';
  8. class RowFFIService {
  9. final String gridId;
  10. final String blockId;
  11. final String rowId;
  12. RowFFIService(
  13. {required this.gridId, required this.blockId, required this.rowId});
  14. Future<Either<RowPB, FlowyError>> createRow() {
  15. CreateRowPayloadPB payload = CreateRowPayloadPB.create()
  16. ..gridId = gridId
  17. ..startRowId = rowId;
  18. return GridEventCreateRow(payload).send();
  19. }
  20. Future<Either<Unit, FlowyError>> moveRow({
  21. required String rowId,
  22. required int fromIndex,
  23. required int toIndex,
  24. required GridLayout layout,
  25. String? upperRowId,
  26. }) {
  27. var payload = MoveRowPayloadPB.create()
  28. ..viewId = gridId
  29. ..rowId = rowId
  30. ..layout = layout
  31. ..fromIndex = fromIndex
  32. ..toIndex = toIndex;
  33. if (upperRowId != null) {
  34. payload.upperRowId = upperRowId;
  35. }
  36. return GridEventMoveRow(payload).send();
  37. }
  38. Future<Either<OptionalRowPB, FlowyError>> getRow() {
  39. final payload = RowIdPB.create()
  40. ..gridId = gridId
  41. ..blockId = blockId
  42. ..rowId = rowId;
  43. return GridEventGetRow(payload).send();
  44. }
  45. Future<Either<Unit, FlowyError>> deleteRow() {
  46. final payload = RowIdPB.create()
  47. ..gridId = gridId
  48. ..blockId = blockId
  49. ..rowId = rowId;
  50. return GridEventDeleteRow(payload).send();
  51. }
  52. Future<Either<Unit, FlowyError>> duplicateRow() {
  53. final payload = RowIdPB.create()
  54. ..gridId = gridId
  55. ..blockId = blockId
  56. ..rowId = rowId;
  57. return GridEventDuplicateRow(payload).send();
  58. }
  59. }