From 00e3dcc2342f05b6a48ce55791beefcc7ee9d0dc Mon Sep 17 00:00:00 2001 From: Shawn Date: Thu, 11 Jan 2024 10:11:03 -0700 Subject: [PATCH] Respect the tabIndex param when on WonderDetails screen --- .../wonder_details/wonders_details_screen.dart | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/ui/screens/wonder_details/wonders_details_screen.dart b/lib/ui/screens/wonder_details/wonders_details_screen.dart index 86b16895..461d2522 100644 --- a/lib/ui/screens/wonder_details/wonders_details_screen.dart +++ b/lib/ui/screens/wonder_details/wonders_details_screen.dart @@ -8,9 +8,9 @@ import 'package:wonders/ui/screens/wonder_details/wonder_details_tab_menu.dart'; import 'package:wonders/ui/screens/wonder_events/wonder_events.dart'; class WonderDetailsScreen extends StatefulWidget with GetItStatefulWidgetMixin { - WonderDetailsScreen({Key? key, required this.type, this.initialTabIndex = 0}) : super(key: key); + WonderDetailsScreen({Key? key, required this.type, this.tabIndex = 0}) : super(key: key); final WonderType type; - final int initialTabIndex; + final int tabIndex; @override State createState() => _WonderDetailsScreenState(); @@ -21,13 +21,21 @@ class _WonderDetailsScreenState extends State late final _tabController = TabController( length: 4, vsync: this, - initialIndex: widget.initialTabIndex, + initialIndex: widget.tabIndex, )..addListener(_handleTabChanged); AnimationController? _fade; double? _tabBarSize; bool _useNavRail = false; + @override + void didUpdateWidget(covariant WonderDetailsScreen oldWidget) { + if (oldWidget.tabIndex != widget.tabIndex) { + _tabController.index = widget.tabIndex; + } + super.didUpdateWidget(oldWidget); + } + @override void dispose() { _tabController.dispose(); @@ -35,6 +43,7 @@ class _WonderDetailsScreenState extends State } void _handleTabChanged() { + context.go(ScreenPaths.wonderDetails(widget.type, tabIndex: _tabController.index)); _fade?.forward(from: 0); setState(() {}); }