row_service.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. class RowFFIService {
  8. final String gridId;
  9. final String blockId;
  10. RowFFIService({
  11. required this.gridId,
  12. required this.blockId,
  13. });
  14. Future<Either<RowPB, FlowyError>> createRow(String rowId) {
  15. final payload = CreateTableRowPayloadPB.create()
  16. ..gridId = gridId
  17. ..startRowId = rowId;
  18. return GridEventCreateTableRow(payload).send();
  19. }
  20. Future<Either<OptionalRowPB, FlowyError>> getRow(String rowId) {
  21. final payload = RowIdPB.create()
  22. ..gridId = gridId
  23. ..blockId = blockId
  24. ..rowId = rowId;
  25. return GridEventGetRow(payload).send();
  26. }
  27. Future<Either<Unit, FlowyError>> deleteRow(String rowId) {
  28. final payload = RowIdPB.create()
  29. ..gridId = gridId
  30. ..blockId = blockId
  31. ..rowId = rowId;
  32. return GridEventDeleteRow(payload).send();
  33. }
  34. Future<Either<Unit, FlowyError>> duplicateRow(String rowId) {
  35. final payload = RowIdPB.create()
  36. ..gridId = gridId
  37. ..blockId = blockId
  38. ..rowId = rowId;
  39. return GridEventDuplicateRow(payload).send();
  40. }
  41. }
  42. class MoveRowFFIService {
  43. final String gridId;
  44. MoveRowFFIService({
  45. required this.gridId,
  46. });
  47. Future<Either<Unit, FlowyError>> moveRow({
  48. required String fromRowId,
  49. required String toRowId,
  50. }) {
  51. var payload = MoveRowPayloadPB.create()
  52. ..viewId = gridId
  53. ..fromRowId = fromRowId
  54. ..toRowId = toRowId;
  55. return GridEventMoveRow(payload).send();
  56. }
  57. }