row_service.dart 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. }