{controller &&
diff --git a/frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_bd_svc.ts b/frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_bd_svc.ts
index 9308ccc456..18194bff2c 100644
--- a/frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_bd_svc.ts
+++ b/frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_bd_svc.ts
@@ -6,9 +6,11 @@ import {
DatabaseEventGetGroups,
DatabaseEventMoveGroup,
DatabaseEventMoveGroupRow,
+ DatabaseEventMoveRow,
DatabaseGroupIdPB,
MoveGroupPayloadPB,
MoveGroupRowPayloadPB,
+ MoveRowPayloadPB,
} from '@/services/backend/events/flowy-database';
import {
GetFieldPayloadPB,
@@ -68,6 +70,15 @@ export class DatabaseBackendService {
return DatabaseEventMoveGroupRow(payload);
};
+ exchangeRow = (fromRowId: string, toRowId: string) => {
+ const payload = MoveRowPayloadPB.fromObject({
+ view_id: this.viewId,
+ from_row_id: fromRowId,
+ to_row_id: toRowId,
+ });
+ return DatabaseEventMoveRow(payload);
+ };
+
moveGroup = (fromGroupId: string, toGroupId: string) => {
const payload = MoveGroupPayloadPB.fromObject({
view_id: this.viewId,
diff --git a/frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_controller.ts b/frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_controller.ts
index a9bfc66d75..226e0b58f6 100644
--- a/frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_controller.ts
+++ b/frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_controller.ts
@@ -79,6 +79,11 @@ export class DatabaseController {
return this.backendService.moveRow(rowId, groupId);
};
+ exchangeRow = async (fromRowId: string, toRowId: string) => {
+ await this.backendService.exchangeRow(fromRowId, toRowId);
+ await this.loadGroup();
+ };
+
moveGroup = (fromGroupId: string, toGroupId: string) => {
return this.backendService.moveGroup(fromGroupId, toGroupId);
};