diff --git a/lib/ui/components/menu_item_widget/menu_item_widget.dart b/lib/ui/components/menu_item_widget/menu_item_widget.dart index 4317dca96..f89d60a85 100644 --- a/lib/ui/components/menu_item_widget/menu_item_widget.dart +++ b/lib/ui/components/menu_item_widget/menu_item_widget.dart @@ -129,6 +129,12 @@ class _MenuItemWidgetState extends State { super.didChangeDependencies(); } + @override + void didUpdateWidget(covariant MenuItemWidget oldWidget) { + menuItemColor = widget.menuItemColor; + super.didUpdateWidget(oldWidget); + } + @override void dispose() { if (widget.expandableController != null) { @@ -210,6 +216,8 @@ class _MenuItemWidgetState extends State { } Future _onTap() async { + if (executionStateNotifier.value == ExecutionState.inProgress || + executionStateNotifier.value == ExecutionState.successful) return; _debouncer.run( () => Future( () { @@ -245,6 +253,8 @@ class _MenuItemWidgetState extends State { } void _onTapDown(details) { + if (executionStateNotifier.value == ExecutionState.inProgress || + executionStateNotifier.value == ExecutionState.successful) return; setState(() { if (widget.pressedColor == null) { hasPassedGestureCallbacks() @@ -261,6 +271,8 @@ class _MenuItemWidgetState extends State { } void _onTapUp(details) { + if (executionStateNotifier.value == ExecutionState.inProgress || + executionStateNotifier.value == ExecutionState.successful) return; Future.delayed( const Duration(milliseconds: 100), () => setState(() { @@ -270,6 +282,8 @@ class _MenuItemWidgetState extends State { } void _onCancel() { + if (executionStateNotifier.value == ExecutionState.inProgress || + executionStateNotifier.value == ExecutionState.successful) return; setState(() { menuItemColor = widget.menuItemColor; });