feat: duplicate field with cell data (#4737)

* feat: duplicate field with cell data

* chore: code review remove extra option
This commit is contained in:
Mathias Mogensen
2024-02-27 14:42:16 +01:00
committed by GitHub
parent d67e904f56
commit 26f8397624
4 changed files with 15 additions and 7 deletions

View File

@ -281,7 +281,7 @@ pub(crate) async fn duplicate_field_handler(
manager: AFPluginState<Weak<DatabaseManager>>,
) -> Result<(), FlowyError> {
let manager = upgrade_manager(manager)?;
let params: FieldIdParams = data.into_inner().try_into()?;
let params: DuplicateFieldPayloadPB = data.into_inner();
let database_editor = manager.get_database_with_view_id(&params.view_id).await?;
database_editor
.duplicate_field(&params.view_id, &params.field_id)

View File

@ -441,8 +441,18 @@ impl DatabaseEditor {
.duplicate_field(view_id, field_id, |field| format!("{} (copy)", field.name));
if let Some((index, duplicated_field)) = value {
let _ = self
.notify_did_insert_database_field(duplicated_field, index)
.notify_did_insert_database_field(duplicated_field.clone(), index)
.await;
let new_field_id = duplicated_field.id.clone();
let cells = self.get_cells_for_field(view_id, field_id).await;
for cell in cells {
if let Some(new_cell) = cell.cell.clone() {
self
.update_cell(view_id, cell.row_id, &new_field_id, new_cell)
.await?;
}
}
}
Ok(())
}