Skip to content

Commit 3ae2818

Browse files
committed
fix: rebuild card when create new field from row detail page
1 parent 4a68020 commit 3ae2818

File tree

7 files changed

+48
-25
lines changed

7 files changed

+48
-25
lines changed

frontend/app_flowy/lib/plugins/board/application/card/card_bloc.dart

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ import 'card_data_controller.dart';
1313
part 'card_bloc.freezed.dart';
1414

1515
class BoardCardBloc extends Bloc<BoardCardEvent, BoardCardState> {
16-
final String fieldId;
16+
final String groupFieldId;
1717
final RowFFIService _rowService;
1818
final CardDataController _dataController;
1919

2020
BoardCardBloc({
21-
required this.fieldId,
21+
required this.groupFieldId,
2222
required String gridId,
2323
required CardDataController dataController,
2424
}) : _rowService = RowFFIService(
@@ -29,7 +29,7 @@ class BoardCardBloc extends Bloc<BoardCardEvent, BoardCardState> {
2929
super(
3030
BoardCardState.initial(
3131
dataController.rowPB,
32-
_makeCells(fieldId, dataController.loadData()),
32+
_makeCells(groupFieldId, dataController.loadData()),
3333
),
3434
) {
3535
on<BoardCardEvent>(
@@ -69,7 +69,7 @@ class BoardCardBloc extends Bloc<BoardCardEvent, BoardCardState> {
6969
_dataController.addListener(
7070
onRowChanged: (cellMap, reason) {
7171
if (!isClosed) {
72-
final cells = _makeCells(fieldId, cellMap);
72+
final cells = _makeCells(groupFieldId, cellMap);
7373
add(BoardCardEvent.didReceiveCells(cells, reason));
7474
}
7575
},
@@ -78,10 +78,11 @@ class BoardCardBloc extends Bloc<BoardCardEvent, BoardCardState> {
7878
}
7979

8080
UnmodifiableListView<BoardCellEquatable> _makeCells(
81-
String fieldId, GridCellMap originalCellMap) {
81+
String groupFieldId, GridCellMap originalCellMap) {
8282
List<BoardCellEquatable> cells = [];
8383
for (final entry in originalCellMap.entries) {
84-
if (entry.value.fieldId != fieldId) {
84+
// Filter out the cell if it's fieldId equal to the groupFieldId
85+
if (entry.value.fieldId != groupFieldId) {
8586
cells.add(BoardCellEquatable(entry.value));
8687
}
8788
}

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import 'package:flowy_infra_ui/style_widget/text.dart';
55
import 'package:flutter/material.dart';
66
import 'package:flutter_bloc/flutter_bloc.dart';
77

8+
import 'define.dart';
9+
810
class BoardDateCell extends StatefulWidget {
911
final String groupId;
1012
final GridCellControllerBuilder cellControllerBuilder;
@@ -44,10 +46,15 @@ class _BoardDateCellState extends State<BoardDateCell> {
4446
} else {
4547
return Align(
4648
alignment: Alignment.centerLeft,
47-
child: FlowyText.regular(
48-
state.dateStr,
49-
fontSize: 13,
50-
color: context.read<AppTheme>().shader3,
49+
child: Padding(
50+
padding: EdgeInsets.symmetric(
51+
vertical: BoardSizes.cardCellVPadding,
52+
),
53+
child: FlowyText.regular(
54+
state.dateStr,
55+
fontSize: 13,
56+
color: context.read<AppTheme>().shader3,
57+
),
5158
),
5259
);
5360
}

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import 'package:flowy_infra_ui/style_widget/text.dart';
44
import 'package:flutter/material.dart';
55
import 'package:flutter_bloc/flutter_bloc.dart';
66

7+
import 'define.dart';
8+
79
class BoardNumberCell extends StatefulWidget {
810
final String groupId;
911
final GridCellControllerBuilder cellControllerBuilder;
@@ -43,9 +45,14 @@ class _BoardNumberCellState extends State<BoardNumberCell> {
4345
} else {
4446
return Align(
4547
alignment: Alignment.centerLeft,
46-
child: FlowyText.medium(
47-
state.content,
48-
fontSize: 14,
48+
child: Padding(
49+
padding: EdgeInsets.symmetric(
50+
vertical: BoardSizes.cardCellVPadding,
51+
),
52+
child: FlowyText.medium(
53+
state.content,
54+
fontSize: 14,
55+
),
4956
),
5057
);
5158
}

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

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import 'package:flowy_infra/theme.dart';
44
import 'package:flutter/material.dart';
55
import 'package:flutter_bloc/flutter_bloc.dart';
66

7+
import 'define.dart';
8+
79
class BoardUrlCell extends StatefulWidget {
810
final String groupId;
911
final GridCellControllerBuilder cellControllerBuilder;
@@ -43,14 +45,19 @@ class _BoardUrlCellState extends State<BoardUrlCell> {
4345
} else {
4446
return Align(
4547
alignment: Alignment.centerLeft,
46-
child: RichText(
47-
textAlign: TextAlign.left,
48-
text: TextSpan(
49-
text: state.content,
50-
style: TextStyle(
51-
color: theme.main2,
52-
fontSize: 14,
53-
decoration: TextDecoration.underline,
48+
child: Padding(
49+
padding: EdgeInsets.symmetric(
50+
vertical: BoardSizes.cardCellVPadding,
51+
),
52+
child: RichText(
53+
textAlign: TextAlign.left,
54+
text: TextSpan(
55+
text: state.content,
56+
style: TextStyle(
57+
color: theme.main2,
58+
fontSize: 14,
59+
decoration: TextDecoration.underline,
60+
),
5461
),
5562
),
5663
),

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class _BoardCardState extends State<BoardCard> {
4444
rowNotifier = EditableRowNotifier();
4545
_cardBloc = BoardCardBloc(
4646
gridId: widget.gridId,
47-
fieldId: widget.fieldId,
47+
groupFieldId: widget.fieldId,
4848
dataController: widget.dataController,
4949
)..add(const BoardCardEvent.initial());
5050
super.initState();
@@ -56,7 +56,7 @@ class _BoardCardState extends State<BoardCard> {
5656
value: _cardBloc,
5757
child: BlocBuilder<BoardCardBloc, BoardCardState>(
5858
buildWhen: (previous, current) {
59-
return previous.cells.length != current.cells.length;
59+
return previous.cells != current.cells;
6060
},
6161
builder: (context, state) {
6262
return BoardCardContainer(

frontend/app_flowy/lib/plugins/grid/presentation/widgets/cell/date_cell/date_cell.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ class _DateCellState extends GridCellState<GridDateCell> {
4343

4444
@override
4545
void initState() {
46-
final cellController = widget.cellControllerBuilder.build();
46+
final cellController =
47+
widget.cellControllerBuilder.build() as GridDateCellController;
4748
_cellBloc = getIt<DateCellBloc>(param1: cellController)
4849
..add(const DateCellEvent.initial());
4950
super.initState();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ where
243243
let cell_data = cell_bytes.parser::<P>()?;
244244
let mut changesets = self.add_row_if_match(row_rev, &cell_data);
245245
let default_group_changeset = self.update_default_group(row_rev, &changesets);
246-
tracing::info!("default_group_changeset: {}", default_group_changeset);
246+
tracing::trace!("default_group_changeset: {}", default_group_changeset);
247247
if !default_group_changeset.is_empty() {
248248
changesets.push(default_group_changeset);
249249
}

0 commit comments

Comments
 (0)