row_service.dart 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 RowService {
  8. final String gridId;
  9. final String blockId;
  10. final String rowId;
  11. RowService(
  12. {required this.gridId, required this.blockId, required this.rowId});
  13. Future<Either<RowPB, FlowyError>> createRow() {
  14. CreateRowPayloadPB payload = CreateRowPayloadPB.create()
  15. ..gridId = gridId
  16. ..startRowId = rowId;
  17. return GridEventCreateRow(payload).send();
  18. }
  19. Future<Either<Unit, FlowyError>> moveRow(
  20. String rowId, int fromIndex, int toIndex) {
  21. final payload = MoveItemPayloadPB.create()
  22. ..gridId = gridId
  23. ..itemId = rowId
  24. ..ty = MoveItemTypePB.MoveRow
  25. ..fromIndex = fromIndex
  26. ..toIndex = toIndex;
  27. return GridEventMoveItem(payload).send();
  28. }
  29. Future<Either<OptionalRowPB, FlowyError>> getRow() {
  30. final payload = RowIdPB.create()
  31. ..gridId = gridId
  32. ..blockId = blockId
  33. ..rowId = rowId;
  34. return GridEventGetRow(payload).send();
  35. }
  36. Future<Either<Unit, FlowyError>> deleteRow() {
  37. final payload = RowIdPB.create()
  38. ..gridId = gridId
  39. ..blockId = blockId
  40. ..rowId = rowId;
  41. return GridEventDeleteRow(payload).send();
  42. }
  43. Future<Either<Unit, FlowyError>> duplicateRow() {
  44. final payload = RowIdPB.create()
  45. ..gridId = gridId
  46. ..blockId = blockId
  47. ..rowId = rowId;
  48. return GridEventDuplicateRow(payload).send();
  49. }
  50. }