From c2683e65526ff3d86f8ec37498db4c8256ee5f1e Mon Sep 17 00:00:00 2001 From: Mangirdas Kazlauskas Date: Tue, 9 Apr 2024 01:12:42 +0300 Subject: [PATCH] fix(flutter_deck): update slide number on route change --- .../src/controls/flutter_deck_controls.dart | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/flutter_deck/lib/src/controls/flutter_deck_controls.dart b/packages/flutter_deck/lib/src/controls/flutter_deck_controls.dart index 843fc4e..26359fe 100644 --- a/packages/flutter_deck/lib/src/controls/flutter_deck_controls.dart +++ b/packages/flutter_deck/lib/src/controls/flutter_deck_controls.dart @@ -170,6 +170,7 @@ class _SlideNumberButton extends StatelessWidget { final flutterDeck = context.flutterDeck; final controlsNotifier = flutterDeck.controlsNotifier; + final router = flutterDeck.router; final shortcuts = flutterDeck.globalConfiguration.controls.shortcuts; final shortcut = LocalizedShortcutLabeler.instance.getShortcutLabel( shortcuts.toggleNavigationDrawer, @@ -177,24 +178,27 @@ class _SlideNumberButton extends StatelessWidget { ); return ListenableBuilder( - listenable: controlsNotifier, - builder: (context, child) { - final enabled = - !controlsNotifier.intentDisabled(const ToggleDrawerIntent()); - - return IconButton( - icon: Text( - '${flutterDeck.slideNumber}', - style: TextStyle( - color: enabled ? theme.iconTheme.color : theme.disabledColor, - fontWeight: FontWeight.bold, + listenable: router, + builder: (context, child) => ListenableBuilder( + listenable: controlsNotifier, + builder: (context, child) { + final enabled = + !controlsNotifier.intentDisabled(const ToggleDrawerIntent()); + + return IconButton( + icon: Text( + '${flutterDeck.slideNumber}', + style: TextStyle( + color: enabled ? theme.iconTheme.color : theme.disabledColor, + fontWeight: FontWeight.bold, + ), ), - ), - tooltip: 'Open navigation drawer' - '${shortcuts.enabled ? ' ($shortcut)' : ''}', - onPressed: enabled ? controlsNotifier.toggleDrawer : null, - ); - }, + tooltip: 'Open navigation drawer' + '${shortcuts.enabled ? ' ($shortcut)' : ''}', + onPressed: enabled ? controlsNotifier.toggleDrawer : null, + ); + }, + ), ); } }