浏览代码

Disable gesutres when MenuItem is in success or inProgress state

ashilkn 2 年之前
父节点
当前提交
76f3a97c76
共有 1 个文件被更改,包括 8 次插入0 次删除
  1. 8 0
      lib/ui/components/menu_item_widget/menu_item_widget.dart

+ 8 - 0
lib/ui/components/menu_item_widget/menu_item_widget.dart

@@ -210,6 +210,8 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
   }
   }
 
 
   Future<void> _onTap() async {
   Future<void> _onTap() async {
+    if (executionStateNotifier.value == ExecutionState.inProgress ||
+        executionStateNotifier.value == ExecutionState.successful) return;
     _debouncer.run(
     _debouncer.run(
       () => Future(
       () => Future(
         () {
         () {
@@ -245,6 +247,8 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
   }
   }
 
 
   void _onTapDown(details) {
   void _onTapDown(details) {
+    if (executionStateNotifier.value == ExecutionState.inProgress ||
+        executionStateNotifier.value == ExecutionState.successful) return;
     setState(() {
     setState(() {
       if (widget.pressedColor == null) {
       if (widget.pressedColor == null) {
         hasPassedGestureCallbacks()
         hasPassedGestureCallbacks()
@@ -261,6 +265,8 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
   }
   }
 
 
   void _onTapUp(details) {
   void _onTapUp(details) {
+    if (executionStateNotifier.value == ExecutionState.inProgress ||
+        executionStateNotifier.value == ExecutionState.successful) return;
     Future.delayed(
     Future.delayed(
       const Duration(milliseconds: 100),
       const Duration(milliseconds: 100),
       () => setState(() {
       () => setState(() {
@@ -270,6 +276,8 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
   }
   }
 
 
   void _onCancel() {
   void _onCancel() {
+    if (executionStateNotifier.value == ExecutionState.inProgress ||
+        executionStateNotifier.value == ExecutionState.successful) return;
     setState(() {
     setState(() {
       menuItemColor = widget.menuItemColor;
       menuItemColor = widget.menuItemColor;
     });
     });