Skip to content

Commit bfebea7

Browse files
committed
fix: add new created row
1 parent a5cbb82 commit bfebea7

File tree

8 files changed

+29
-11
lines changed

8 files changed

+29
-11
lines changed

frontend/app_flowy/lib/plugins/board/presentation/card/board_text_cell.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import 'package:app_flowy/plugins/grid/presentation/widgets/cell/cell_builder.da
44
import 'package:flowy_infra_ui/style_widget/text.dart';
55
import 'package:flutter/material.dart';
66
import 'package:flutter_bloc/flutter_bloc.dart';
7-
87
import 'board_cell.dart';
98
import 'define.dart';
109

frontend/rust-lib/flowy-grid/src/services/block_manager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ impl GridBlockManager {
107107
let editor = self.get_editor_from_row_id(&changeset.row_id).await?;
108108
let _ = editor.update_row(changeset.clone()).await?;
109109
match editor.get_row_rev(&changeset.row_id).await? {
110-
None => tracing::error!("Internal error: can't find the row with id: {}", changeset.row_id),
110+
None => tracing::error!("Update row failed, can't find the row with id: {}", changeset.row_id),
111111
Some(row_rev) => {
112112
let row_pb = make_row_from_row_rev(row_rev.clone());
113113
let block_order_changeset = GridBlockChangesetPB::update(&editor.block_id, vec![row_pb]);

frontend/rust-lib/flowy-grid/src/services/grid_view_editor.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ impl GridViewRevisionEditor {
9696
None => Some(0),
9797
Some(_) => None,
9898
};
99+
100+
self.group_controller.write().await.did_create_row(row_pb, group_id);
99101
let inserted_row = InsertedRowPB {
100102
row: row_pb.clone(),
101103
index,

frontend/rust-lib/flowy-grid/src/services/group/controller.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use std::sync::Arc;
1515
// a new row.
1616
pub trait GroupController: GroupControllerSharedOperation + Send + Sync {
1717
fn will_create_row(&mut self, row_rev: &mut RowRevision, field_rev: &FieldRevision, group_id: &str);
18+
fn did_create_row(&mut self, row_pb: &RowPB, group_id: &str);
1819
}
1920

2021
pub trait GroupGenerator {

frontend/rust-lib/flowy-grid/src/services/group/controller_impls/checkbox_controller.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ impl GroupAction for CheckboxGroupController {
2828
}
2929

3030
fn can_group(&self, content: &str, cell_data: &Self::CellDataType) -> bool {
31-
return if cell_data.is_check() {
31+
if cell_data.is_check() {
3232
content == CHECK
3333
} else {
3434
content == UNCHECK
35-
};
35+
}
3636
}
3737

3838
fn add_row_if_match(&mut self, row_rev: &RowRevision, cell_data: &Self::CellDataType) -> Vec<GroupChangesetPB> {
@@ -46,11 +46,9 @@ impl GroupAction for CheckboxGroupController {
4646
changeset.inserted_rows.push(InsertedRowPB::new(row_pb.clone()));
4747
group.add_row(row_pb);
4848
}
49-
} else {
50-
if is_contained {
51-
changeset.deleted_rows.push(row_rev.id.clone());
52-
group.remove_row(&row_rev.id);
53-
}
49+
} else if is_contained {
50+
changeset.deleted_rows.push(row_rev.id.clone());
51+
group.remove_row(&row_rev.id);
5452
}
5553
if !changeset.is_empty() {
5654
changesets.push(changeset);
@@ -97,6 +95,12 @@ impl GroupController for CheckboxGroupController {
9795
}
9896
}
9997
}
98+
99+
fn did_create_row(&mut self, row_pb: &RowPB, group_id: &str) {
100+
if let Some(group) = self.group_ctx.get_mut_group(group_id) {
101+
group.add_row(row_pb.clone())
102+
}
103+
}
100104
}
101105

102106
pub struct CheckboxGroupGenerator();

frontend/rust-lib/flowy-grid/src/services/group/controller_impls/default_controller.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,6 @@ impl GroupControllerSharedOperation for DefaultGroupController {
7777

7878
impl GroupController for DefaultGroupController {
7979
fn will_create_row(&mut self, _row_rev: &mut RowRevision, _field_rev: &FieldRevision, _group_id: &str) {}
80+
81+
fn did_create_row(&mut self, _row_rev: &RowPB, _group_id: &str) {}
8082
}

frontend/rust-lib/flowy-grid/src/services/group/controller_impls/select_option_controller/multi_select_controller.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::entities::GroupChangesetPB;
1+
use crate::entities::{GroupChangesetPB, RowPB};
22
use crate::services::cell::insert_select_option_cell;
33
use crate::services::field::{MultiSelectTypeOptionPB, SelectOptionCellDataPB, SelectOptionCellDataParser};
44
use crate::services::group::action::GroupAction;
@@ -67,6 +67,12 @@ impl GroupController for MultiSelectGroupController {
6767
}
6868
}
6969
}
70+
71+
fn did_create_row(&mut self, row_pb: &RowPB, group_id: &str) {
72+
if let Some(group) = self.group_ctx.get_mut_group(group_id) {
73+
group.add_row(row_pb.clone())
74+
}
75+
}
7076
}
7177

7278
pub struct MultiSelectGroupGenerator();

frontend/rust-lib/flowy-grid/src/services/group/controller_impls/select_option_controller/single_select_controller.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,14 @@ impl GroupController for SingleSelectGroupController {
6565
Some(group) => {
6666
let cell_rev = insert_select_option_cell(group.id.clone(), field_rev);
6767
row_rev.cells.insert(field_rev.id.clone(), cell_rev);
68-
group.add_row(RowPB::from(row_rev));
6968
}
7069
}
7170
}
71+
fn did_create_row(&mut self, row_pb: &RowPB, group_id: &str) {
72+
if let Some(group) = self.group_ctx.get_mut_group(group_id) {
73+
group.add_row(row_pb.clone())
74+
}
75+
}
7276
}
7377

7478
pub struct SingleSelectGroupGenerator();

0 commit comments

Comments
 (0)