From a066f77639a164e82282893dd31a513aeab54a2d Mon Sep 17 00:00:00 2001
From: sneurlax <sneurlax@gmail.com>
Date: Fri, 5 Jul 2024 14:46:14 -0500
Subject: [PATCH] fix attempt to toggle enableExchange while desktop menu
 minimized

---
 lib/pages_desktop_specific/desktop_menu.dart  | 22 ++++++++++---------
 .../desktop_menu_item.dart                    | 12 +++++++++-
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart
index 2e3b4e74d..2e9f43782 100644
--- a/lib/pages_desktop_specific/desktop_menu.dart
+++ b/lib/pages_desktop_specific/desktop_menu.dart
@@ -61,6 +61,7 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> {
   late final DMIController torButtonController;
 
   double _width = expandedWidth;
+  bool _isMinimized = false;
 
   void updateSelectedMenuItem(DesktopMenuItemId idKey) {
     widget.onSelectionWillChange?.call(idKey);
@@ -81,24 +82,25 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> {
 
     setState(() {
       _width = expanded ? minimizedWidth : expandedWidth;
+      _isMinimized = !_isMinimized;
     });
   }
 
   @override
   void initState() {
     controllers = [
-      DMIController(),
-      DMIController(),
-      DMIController(),
-      DMIController(),
-      DMIController(),
-      DMIController(),
-      DMIController(),
-      DMIController(),
-      DMIController(),
+      DMIController(isMinimized: _isMinimized),
+      DMIController(isMinimized: _isMinimized),
+      DMIController(isMinimized: _isMinimized),
+      DMIController(isMinimized: _isMinimized),
+      DMIController(isMinimized: _isMinimized),
+      DMIController(isMinimized: _isMinimized),
+      DMIController(isMinimized: _isMinimized),
+      DMIController(isMinimized: _isMinimized),
+      DMIController(isMinimized: _isMinimized),
     ];
 
-    torButtonController = DMIController();
+    torButtonController = DMIController(isMinimized: _isMinimized);
 
     super.initState();
   }
diff --git a/lib/pages_desktop_specific/desktop_menu_item.dart b/lib/pages_desktop_specific/desktop_menu_item.dart
index 1fde1281c..e36282f44 100644
--- a/lib/pages_desktop_specific/desktop_menu_item.dart
+++ b/lib/pages_desktop_specific/desktop_menu_item.dart
@@ -24,6 +24,10 @@ import 'desktop_menu.dart';
 
 class DMIController {
   VoidCallback? toggle;
+  final bool isMinimized;
+
+  DMIController({required this.isMinimized});
+
   void dispose() {
     toggle = null;
   }
@@ -287,11 +291,17 @@ class _DesktopMenuItemState<T> extends ConsumerState<DesktopMenuItem<T>>
     labelLength = widget.labelLength;
     controller = widget.controller;
 
+    _iconOnly = controller?.isMinimized ?? false;
     controller?.toggle = toggle;
     animationController = AnimationController(
       vsync: this,
       duration: duration,
-    )..forward();
+    );
+    if (_iconOnly) {
+      animationController.reverse();
+    } else {
+      animationController.forward();
+    }
 
     super.initState();
   }