diff --git a/frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs b/frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs index 65ee29258c..5a136b07ca 100644 --- a/frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs +++ b/frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs @@ -958,7 +958,7 @@ impl DatabaseEditor { let mut row_changeset = RowChangeset::new(row_detail.row.id.clone()); let view = self.database_views.get_view_editor(view_id).await?; view - .v_move_group_row(&row_detail, &mut row_changeset, to_group, to_row) + .v_move_group_row(&row_detail, &mut row_changeset, to_group, to_row.clone()) .await; tracing::trace!("Row data changed: {:?}", row_changeset); @@ -966,6 +966,19 @@ impl DatabaseEditor { row.set_cells(Cells::from(row_changeset.cell_by_field_id.clone())); }); + let to_row = if to_row.is_some() { + to_row + } else { + let row_details = self.get_rows(view_id).await?; + row_details + .last() + .map(|row_detail| row_detail.row.id.clone()) + }; + + if let Some(row_id) = to_row { + self.move_row(view_id, from_row, row_id).await; + } + let cell_changesets = cell_changesets_from_cell_by_field_id( view_id, row_changeset.row_id, diff --git a/frontend/rust-lib/flowy-database2/src/services/database_view/view_editor.rs b/frontend/rust-lib/flowy-database2/src/services/database_view/view_editor.rs index 74e17e23da..64aa89e49a 100644 --- a/frontend/rust-lib/flowy-database2/src/services/database_view/view_editor.rs +++ b/frontend/rust-lib/flowy-database2/src/services/database_view/view_editor.rs @@ -394,11 +394,11 @@ impl DatabaseViewEditor { if let Some(result) = result { if let Some(delete_group) = result.deleted_group { tracing::trace!("Delete group after moving the row: {:?}", delete_group); - let mut changes = GroupChangesPB { + let changes = GroupChangesPB { view_id: self.view_id.clone(), + deleted_groups: vec![delete_group.group_id], ..Default::default() }; - changes.deleted_groups.push(delete_group.group_id); notify_did_update_num_of_groups(&self.view_id, changes).await; }