Browse Source

chore: ignore dragtarget event when performing insert animation

appflowy 2 năm trước cách đây
mục cha
commit
e42bfe0b1e

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

@@ -82,6 +82,8 @@ class ReorderFlex extends StatefulWidget {
 
   final ReorderDragTargetIndexKeyStorage? dragTargetIndexKeyStorage;
 
+  final bool reorderable;
+
   ReorderFlex({
     Key? key,
     this.scrollController,
@@ -89,6 +91,7 @@ class ReorderFlex extends StatefulWidget {
     required this.children,
     required this.config,
     required this.onReorder,
+    this.reorderable = true,
     this.dragStateStorage,
     this.dragTargetIndexKeyStorage,
     this.onDragStarted,
@@ -385,7 +388,7 @@ class ReorderFlexState extends State<ReorderFlex>
       },
       onWillAccept: (FlexDragTargetData dragTargetData) {
         // Do not receive any events if the Insert item is animating.
-        if (_animation.deleteController.isAnimating) {
+        if (_animation.insertController.isAnimating) {
           return false;
         }
 
@@ -421,6 +424,7 @@ class ReorderFlexState extends State<ReorderFlex>
       deleteAnimationController: _animation.deleteController,
       draggableTargetBuilder: widget.interceptor?.draggableTargetBuilder,
       useMoveAnimation: widget.config.useMoveAnimation,
+      draggable: widget.reorderable,
       child: child,
     );
   }