From 1aca715397a4146059c53ca446eea229a868d73e Mon Sep 17 00:00:00 2001 From: julian <julian@cypherstack.com> Date: Mon, 28 Nov 2022 16:17:33 -0600 Subject: [PATCH] animated desktop menu fix --- .../home/desktop_menu.dart | 16 ---------------- .../home/desktop_menu_item.dart | 14 +++++++------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/lib/pages_desktop_specific/home/desktop_menu.dart b/lib/pages_desktop_specific/home/desktop_menu.dart index 8af307e7b..fd404db94 100644 --- a/lib/pages_desktop_specific/home/desktop_menu.dart +++ b/lib/pages_desktop_specific/home/desktop_menu.dart @@ -157,8 +157,6 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> { ), label: "My Stack", value: DesktopMenuItemId.myStack, - group: - ref.watch(currentDesktopMenuItemProvider.state).state, onChanged: updateSelectedMenuItem, controller: controllers[0], ), @@ -185,8 +183,6 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> { ), label: "Exchange", value: DesktopMenuItemId.exchange, - group: - ref.watch(currentDesktopMenuItemProvider.state).state, onChanged: updateSelectedMenuItem, controller: controllers[1], ), @@ -220,8 +216,6 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> { ), label: "Notifications", value: DesktopMenuItemId.notifications, - group: - ref.watch(currentDesktopMenuItemProvider.state).state, onChanged: updateSelectedMenuItem, controller: controllers[2], ), @@ -248,8 +242,6 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> { ), label: "Address Book", value: DesktopMenuItemId.addressBook, - group: - ref.watch(currentDesktopMenuItemProvider.state).state, onChanged: updateSelectedMenuItem, controller: controllers[3], ), @@ -276,8 +268,6 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> { ), label: "Settings", value: DesktopMenuItemId.settings, - group: - ref.watch(currentDesktopMenuItemProvider.state).state, onChanged: updateSelectedMenuItem, controller: controllers[4], ), @@ -304,8 +294,6 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> { ), label: "Support", value: DesktopMenuItemId.support, - group: - ref.watch(currentDesktopMenuItemProvider.state).state, onChanged: updateSelectedMenuItem, controller: controllers[5], ), @@ -332,8 +320,6 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> { ), label: "About", value: DesktopMenuItemId.about, - group: - ref.watch(currentDesktopMenuItemProvider.state).state, onChanged: updateSelectedMenuItem, controller: controllers[6], ), @@ -352,8 +338,6 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> { ), label: "Exit", value: 7, - group: - ref.watch(currentDesktopMenuItemProvider.state).state, onChanged: (_) { // todo: save stuff/ notify before exit? exit(0); diff --git a/lib/pages_desktop_specific/home/desktop_menu_item.dart b/lib/pages_desktop_specific/home/desktop_menu_item.dart index 1fb39213b..78dcde79b 100644 --- a/lib/pages_desktop_specific/home/desktop_menu_item.dart +++ b/lib/pages_desktop_specific/home/desktop_menu_item.dart @@ -1,4 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/theme/stack_colors.dart'; @@ -9,13 +11,12 @@ class DMIController { } } -class DesktopMenuItem<T> extends StatefulWidget { +class DesktopMenuItem<T> extends ConsumerStatefulWidget { const DesktopMenuItem({ Key? key, required this.icon, required this.label, required this.value, - required this.group, required this.onChanged, required this.duration, this.labelLength = 125, @@ -25,22 +26,20 @@ class DesktopMenuItem<T> extends StatefulWidget { final Widget icon; final String label; final T value; - final T group; final void Function(T) onChanged; final Duration duration; final double labelLength; final DMIController? controller; @override - State<DesktopMenuItem<T>> createState() => _DesktopMenuItemState<T>(); + ConsumerState<DesktopMenuItem<T>> createState() => _DesktopMenuItemState<T>(); } -class _DesktopMenuItemState<T> extends State<DesktopMenuItem<T>> +class _DesktopMenuItemState<T> extends ConsumerState<DesktopMenuItem<T>> with SingleTickerProviderStateMixin { late final Widget icon; late final String label; late final T value; - late final T group; late final void Function(T) onChanged; late final Duration duration; late final double labelLength; @@ -67,7 +66,6 @@ class _DesktopMenuItemState<T> extends State<DesktopMenuItem<T>> icon = widget.icon; label = widget.label; value = widget.value; - group = widget.group; onChanged = widget.onChanged; duration = widget.duration; labelLength = widget.labelLength; @@ -91,6 +89,8 @@ class _DesktopMenuItemState<T> extends State<DesktopMenuItem<T>> @override Widget build(BuildContext context) { + final group = ref.watch(currentDesktopMenuItemProvider.state).state; + debugPrint("============ value:$value ============ group:$group"); return TextButton( style: value == group ? Theme.of(context)