From 868460b0236af71f7c254a42b6a875d4f4e4b9e9 Mon Sep 17 00:00:00 2001 From: Mathis Kirchner Date: Sat, 9 May 2026 11:50:49 +0200 Subject: [PATCH] feat: update TextIconListTile to support custom icons --- .../main_menu/match_view/match_result_view.dart | 2 +- lib/presentation/widgets/player_selection.dart | 1 + .../widgets/tiles/text_icon_list_tile.dart | 13 +++++-------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/lib/presentation/views/main_menu/match_view/match_result_view.dart b/lib/presentation/views/main_menu/match_view/match_result_view.dart index bf85e03..122f4ec 100644 --- a/lib/presentation/views/main_menu/match_view/match_result_view.dart +++ b/lib/presentation/views/main_menu/match_view/match_result_view.dart @@ -240,7 +240,7 @@ class _MatchResultViewState extends State { return TextIconListTile( key: ValueKey(allPlayers[index].id), text: allPlayers[index].name, - iconEnabled: false, + icon: Icons.drag_handle, ); }, ), diff --git a/lib/presentation/widgets/player_selection.dart b/lib/presentation/widgets/player_selection.dart index 0fc8ea0..cdcc2ed 100644 --- a/lib/presentation/widgets/player_selection.dart +++ b/lib/presentation/widgets/player_selection.dart @@ -196,6 +196,7 @@ class _PlayerSelectionState extends State { return TextIconListTile( text: suggestedPlayers[index].name, suffixText: getNameCountText(suggestedPlayers[index]), + icon: Icons.add, onPressed: () { setState(() { // If the player is not already selected diff --git a/lib/presentation/widgets/tiles/text_icon_list_tile.dart b/lib/presentation/widgets/tiles/text_icon_list_tile.dart index f77b5c3..4c0d648 100644 --- a/lib/presentation/widgets/tiles/text_icon_list_tile.dart +++ b/lib/presentation/widgets/tiles/text_icon_list_tile.dart @@ -11,7 +11,7 @@ class TextIconListTile extends StatelessWidget { required this.text, this.suffixText = '', this.prefixText = '', - this.iconEnabled = true, + this.icon, this.onPressed, }); @@ -24,8 +24,8 @@ class TextIconListTile extends StatelessWidget { /// An optional prefix text to display before the main text. final String prefixText; - /// A boolean to determine if the icon should be displayed. - final bool iconEnabled; + /// The icon to display in the tile. + final IconData? icon; /// The callback to be invoked when the icon is pressed. final VoidCallback? onPressed; @@ -76,11 +76,8 @@ class TextIconListTile extends StatelessWidget { ), ), ), - if (iconEnabled) - GestureDetector( - onTap: onPressed, - child: const Icon(Icons.add, size: 20), - ), + if (icon != null) + GestureDetector(onTap: onPressed, child: Icon(icon, size: 20)), ], ), );