animated desktop menu fix

This commit is contained in:
julian 2022-11-28 16:17:33 -06:00
parent c9a91e10ac
commit 1aca715397
2 changed files with 7 additions and 23 deletions

View file

@ -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);

View file

@ -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)