From 21065858adc50ec2ce2ba324d17cd6c9c80f7f9c Mon Sep 17 00:00:00 2001 From: ildysilva Date: Sun, 5 Oct 2025 21:55:35 +0100 Subject: [PATCH 1/3] replace version info button with info icon on narrow screens --- pkgs/dartpad_ui/lib/main.dart | 51 ++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/pkgs/dartpad_ui/lib/main.dart b/pkgs/dartpad_ui/lib/main.dart index 431d02075..2f649c765 100644 --- a/pkgs/dartpad_ui/lib/main.dart +++ b/pkgs/dartpad_ui/lib/main.dart @@ -788,7 +788,7 @@ class StatusLineWidget extends StatelessWidget { ), ), const Expanded(child: SizedBox(width: defaultSpacing)), - VersionInfoWidget(appModel.runtimeVersions), + VersionInfoWidget(appModel.runtimeVersions, hideLabel: mobileVersion), const SizedBox(width: denseSpacing), SelectChannelWidget(hideLabel: mobileVersion), ], @@ -1123,38 +1123,47 @@ class KeyBindingsTable extends StatelessWidget { class VersionInfoWidget extends StatefulWidget { final ValueListenable versions; + final bool hideLabel; - const VersionInfoWidget(this.versions, {super.key}); + const VersionInfoWidget(this.versions, {super.key, this.hideLabel = false}); @override State createState() => _VersionInfoWidgetState(); } class _VersionInfoWidgetState extends State { - bool hovered = false; + void _showVersionDialog(VersionResponse versions) { + showDialog( + context: context, + builder: (context) => MediumDialog( + title: 'Runtime versions', + child: VersionTable(version: versions), + ), + ); + } @override Widget build(BuildContext context) { return ValueListenableBuilder( valueListenable: widget.versions, - builder: (content, versions, _) { - if (versions == null) { - return const SizedBox(); - } - - return TextButton( - onPressed: () { - showDialog( - context: context, - builder: (context) { - return MediumDialog( - title: 'Runtime versions', - child: VersionTable(version: versions), - ); - }, - ); - }, - child: Text(versions.label), + builder: (_, versions, _) { + if (versions == null) return const SizedBox(); + + return AnimatedSwitcher( + duration: const Duration(milliseconds: 200), + child: widget.hideLabel + ? IconButton( + key: const ValueKey('info_icon'), + icon: const Icon(Icons.info_outline), + tooltip: 'Runtime versions', + onPressed: () => _showVersionDialog(versions), + ) + : TextButton.icon( + key: const ValueKey('info_button'), + icon: const Icon(Icons.info_outline, size: 18), + label: Text(versions.label), + onPressed: () => _showVersionDialog(versions), + ), ); }, ); From fb0f67097aec33d19bbb4e7de39b51d283ae03d6 Mon Sep 17 00:00:00 2001 From: Ildeberto Vasconcelos Date: Mon, 13 Oct 2025 10:53:02 +0100 Subject: [PATCH 2/3] Update pkgs/dartpad_ui/lib/main.dart Co-authored-by: Parker Lougheed --- pkgs/dartpad_ui/lib/main.dart | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/pkgs/dartpad_ui/lib/main.dart b/pkgs/dartpad_ui/lib/main.dart index 2f649c765..7b2ae4395 100644 --- a/pkgs/dartpad_ui/lib/main.dart +++ b/pkgs/dartpad_ui/lib/main.dart @@ -1149,21 +1149,14 @@ class _VersionInfoWidgetState extends State { builder: (_, versions, _) { if (versions == null) return const SizedBox(); - return AnimatedSwitcher( - duration: const Duration(milliseconds: 200), - child: widget.hideLabel - ? IconButton( - key: const ValueKey('info_icon'), - icon: const Icon(Icons.info_outline), - tooltip: 'Runtime versions', - onPressed: () => _showVersionDialog(versions), - ) - : TextButton.icon( - key: const ValueKey('info_button'), - icon: const Icon(Icons.info_outline, size: 18), - label: Text(versions.label), - onPressed: () => _showVersionDialog(versions), - ), + return CollapsibleIconToggleButton( + onToggle: () => _showVersionDialog(versions), + icon: const Icon(Icons.info_outline, size: smallIconSize), + label: Text(versions.label), + tooltip: 'Runtime versions', + compact: true, + hideLabel: widget.hideLabel, + ); ); }, ); From 395beafd3a98e8fa5921df3af7656fd9da59cc7e Mon Sep 17 00:00:00 2001 From: ildysilva Date: Mon, 13 Oct 2025 11:06:31 +0100 Subject: [PATCH 3/3] replace animatedbuilder with CollapsibleIconToggleButton --- pkgs/dartpad_ui/lib/main.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/main.dart b/pkgs/dartpad_ui/lib/main.dart index 7b2ae4395..f90d6fb58 100644 --- a/pkgs/dartpad_ui/lib/main.dart +++ b/pkgs/dartpad_ui/lib/main.dart @@ -1157,7 +1157,6 @@ class _VersionInfoWidgetState extends State { compact: true, hideLabel: widget.hideLabel, ); - ); }, ); }