Browse Source

chore: add remove out of bound guard

appflowy 2 years ago
parent
commit
2b725f8f71

+ 3 - 0
frontend/app_flowy/lib/plugins/board/presentation/card/board_select_option_cell.dart

@@ -37,6 +37,9 @@ class _BoardSelectOptionCellState extends State<BoardSelectOptionCell> {
     return BlocProvider.value(
     return BlocProvider.value(
       value: _cellBloc,
       value: _cellBloc,
       child: BlocBuilder<BoardSelectOptionCellBloc, BoardSelectOptionCellState>(
       child: BlocBuilder<BoardSelectOptionCellBloc, BoardSelectOptionCellState>(
+        // buildWhen: (previous, current) {
+        //   return previous.selectedOptions != current.selectedOptions;
+        // },
         builder: (context, state) {
         builder: (context, state) {
           if (state.selectedOptions
           if (state.selectedOptions
               .where((element) => element.id == widget.groupId)
               .where((element) => element.id == widget.groupId)

+ 4 - 0
frontend/app_flowy/packages/appflowy_board/lib/src/widgets/board_column/board_column_data.dart

@@ -121,6 +121,10 @@ class AFBoardColumnDataController extends ChangeNotifier with EquatableMixin {
       columnData._items.add(newItem);
       columnData._items.add(newItem);
       Log.debug('[$AFBoardColumnDataController] $columnData add $newItem');
       Log.debug('[$AFBoardColumnDataController] $columnData add $newItem');
     } else {
     } else {
+      if (index >= columnData._items.length) {
+        return;
+      }
+
       final removedItem = columnData._items.removeAt(index);
       final removedItem = columnData._items.removeAt(index);
       columnData._items.insert(index, newItem);
       columnData._items.insert(index, newItem);
       Log.debug(
       Log.debug(

+ 1 - 1
frontend/app_flowy/packages/appflowy_board/lib/src/widgets/reorder_flex/drag_target.dart

@@ -140,7 +140,7 @@ class _ReorderDragTargetState<T extends DragTargetData>
           widget.insertAnimationController,
           widget.insertAnimationController,
           widget.deleteAnimationController,
           widget.deleteAnimationController,
         ) ??
         ) ??
-        LongPressDraggable<DragTargetData>(
+        Draggable<DragTargetData>(
           maxSimultaneousDrags: 1,
           maxSimultaneousDrags: 1,
           data: widget.dragTargetData,
           data: widget.dragTargetData,
           ignoringFeedbackSemantics: false,
           ignoringFeedbackSemantics: false,