mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-10-30 17:38:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:dartz/dartz.dart';
 | |
| import 'package:flowy_sdk/dispatch/dispatch.dart';
 | |
| import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
 | |
| import 'package:flowy_sdk/protobuf/flowy-folder/view.pb.dart';
 | |
| import 'package:flowy_sdk/protobuf/flowy-grid/block_entities.pb.dart';
 | |
| import 'package:flowy_sdk/protobuf/flowy-grid/field_entities.pb.dart';
 | |
| import 'package:flowy_sdk/protobuf/flowy-grid/grid_entities.pb.dart';
 | |
| import 'package:flowy_sdk/protobuf/flowy-grid/group.pb.dart';
 | |
| import 'package:flowy_sdk/protobuf/flowy-grid/row_entities.pb.dart';
 | |
| 
 | |
| class GridFFIService {
 | |
|   final String gridId;
 | |
|   GridFFIService({
 | |
|     required this.gridId,
 | |
|   });
 | |
| 
 | |
|   Future<Either<GridPB, FlowyError>> loadGrid() async {
 | |
|     await FolderEventSetLatestView(ViewIdPB(value: gridId)).send();
 | |
| 
 | |
|     final payload = GridIdPB(value: gridId);
 | |
|     return GridEventGetGrid(payload).send();
 | |
|   }
 | |
| 
 | |
|   Future<Either<RowPB, FlowyError>> createRow({Option<String>? startRowId}) {
 | |
|     var payload = CreateTableRowPayloadPB.create()..gridId = gridId;
 | |
|     startRowId?.fold(() => null, (id) => payload.startRowId = id);
 | |
|     return GridEventCreateTableRow(payload).send();
 | |
|   }
 | |
| 
 | |
|   Future<Either<RowPB, FlowyError>> createBoardCard(
 | |
|     String groupId,
 | |
|     String? startRowId,
 | |
|   ) {
 | |
|     CreateBoardCardPayloadPB payload = CreateBoardCardPayloadPB.create()
 | |
|       ..gridId = gridId
 | |
|       ..groupId = groupId;
 | |
| 
 | |
|     if (startRowId != null) {
 | |
|       payload.startRowId = startRowId;
 | |
|     }
 | |
| 
 | |
|     return GridEventCreateBoardCard(payload).send();
 | |
|   }
 | |
| 
 | |
|   Future<Either<RepeatedFieldPB, FlowyError>> getFields(
 | |
|       {required List<FieldIdPB> fieldIds}) {
 | |
|     final payload = QueryFieldPayloadPB.create()
 | |
|       ..gridId = gridId
 | |
|       ..fieldIds = RepeatedFieldIdPB(items: fieldIds);
 | |
|     return GridEventGetFields(payload).send();
 | |
|   }
 | |
| 
 | |
|   Future<Either<Unit, FlowyError>> closeGrid() {
 | |
|     final request = ViewIdPB(value: gridId);
 | |
|     return FolderEventCloseView(request).send();
 | |
|   }
 | |
| 
 | |
|   Future<Either<RepeatedGridGroupPB, FlowyError>> loadGroups() {
 | |
|     final payload = GridIdPB(value: gridId);
 | |
|     return GridEventGetGroup(payload).send();
 | |
|   }
 | |
| }
 | 
