row_service.dart 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. RowFFIService({
  12. required this.gridId,
  13. required this.blockId,
  14. });
  15. Future<Either<RowPB, FlowyError>> createRow(String rowId) {
  16. final payload = CreateTableRowPayloadPB.create()
  17. ..gridId = gridId
  18. ..startRowId = rowId;
  19. return GridEventCreateTableRow(payload).send();
  20. }
  21. Future<Either<Unit, FlowyError>> moveRow({
  22. required String rowId,
  23. required int fromIndex,
  24. required int toIndex,
  25. required GridLayout layout,
  26. String? upperRowId,
  27. }) {
  28. var payload = MoveRowPayloadPB.create()
  29. ..viewId = gridId
  30. ..rowId = rowId
  31. ..layout = layout
  32. ..fromIndex = fromIndex
  33. ..toIndex = toIndex;
  34. if (upperRowId != null) {
  35. payload.upperRowId = upperRowId;
  36. }
  37. return GridEventMoveRow(payload).send();
  38. }
  39. Future<Either<OptionalRowPB, FlowyError>> getRow(String rowId) {
  40. final payload = RowIdPB.create()
  41. ..gridId = gridId
  42. ..blockId = blockId
  43. ..rowId = rowId;
  44. return GridEventGetRow(payload).send();
  45. }
  46. Future<Either<Unit, FlowyError>> deleteRow(String rowId) {
  47. final payload = RowIdPB.create()
  48. ..gridId = gridId
  49. ..blockId = blockId
  50. ..rowId = rowId;
  51. return GridEventDeleteRow(payload).send();
  52. }
  53. Future<Either<Unit, FlowyError>> duplicateRow(String rowId) {
  54. final payload = RowIdPB.create()
  55. ..gridId = gridId
  56. ..blockId = blockId
  57. ..rowId = rowId;
  58. return GridEventDuplicateRow(payload).send();
  59. }
  60. }
  61. class MoveRowFFIService {
  62. final String gridId;
  63. MoveRowFFIService({
  64. required this.gridId,
  65. });
  66. Future<Either<Unit, FlowyError>> moveRow({
  67. required String rowId,
  68. required int fromIndex,
  69. required int toIndex,
  70. required GridLayout layout,
  71. String? upperRowId,
  72. }) {
  73. var payload = MoveRowPayloadPB.create()
  74. ..viewId = gridId
  75. ..rowId = rowId
  76. ..layout = layout
  77. ..fromIndex = fromIndex
  78. ..toIndex = toIndex;
  79. if (upperRowId != null) {
  80. payload.upperRowId = upperRowId;
  81. }
  82. return GridEventMoveRow(payload).send();
  83. }
  84. }