diff --git a/lib/l10n/arb/app_de.arb b/lib/l10n/arb/app_de.arb index de579ff..95acced 100644 --- a/lib/l10n/arb/app_de.arb +++ b/lib/l10n/arb/app_de.arb @@ -96,6 +96,7 @@ "no_license_text_available": "Kein Lizenztext verfügbar", "no_licenses_found": "Keine Lizenzen gefunden", "no_matches_created_yet": "Noch keine Spiele erstellt", + "no_players_available": "Keine Spieler:innen verfügbar", "no_players_created_yet": "Noch keine Spieler:in erstellt", "no_players_found_with_that_name": "Keine Spieler:in mit diesem Namen gefunden", "no_players_selected": "Keine Spieler:innen ausgewählt", @@ -103,6 +104,7 @@ "no_results_entered_yet": "Noch keine Ergebnisse eingetragen", "no_second_match_available": "Kein zweites Spiel verfügbar", "no_statistics_available": "Keine Statistiken verfügbar", + "no_teams_available": "Keine Teams verfügbar", "none": "Kein", "none_group": "Keine", "not_available": "Nicht verfügbar", diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index b77797c..a5effcd 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -96,6 +96,7 @@ "no_license_text_available": "No license text available", "no_licenses_found": "No licenses found", "no_matches_created_yet": "No matches created yet", + "no_players_available": "No players available", "no_players_created_yet": "No players created yet", "no_players_found_with_that_name": "No players found with that name", "no_players_selected": "No players selected", @@ -103,6 +104,7 @@ "no_results_entered_yet": "No results entered yet", "no_second_match_available": "No second match available", "no_statistics_available": "No statistics available", + "no_teams_available": "No teams available", "none": "None", "none_group": "None", "not_available": "Not available", diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart index defaa4b..27e9ea5 100644 --- a/lib/l10n/generated/app_localizations.dart +++ b/lib/l10n/generated/app_localizations.dart @@ -632,6 +632,12 @@ abstract class AppLocalizations { /// **'No matches created yet'** String get no_matches_created_yet; + /// No description provided for @no_players_available. + /// + /// In en, this message translates to: + /// **'No players available'** + String get no_players_available; + /// No description provided for @no_players_created_yet. /// /// In en, this message translates to: @@ -674,6 +680,12 @@ abstract class AppLocalizations { /// **'No statistics available'** String get no_statistics_available; + /// No description provided for @no_teams_available. + /// + /// In en, this message translates to: + /// **'No teams available'** + String get no_teams_available; + /// No description provided for @none. /// /// In en, this message translates to: diff --git a/lib/l10n/generated/app_localizations_de.dart b/lib/l10n/generated/app_localizations_de.dart index 5f2f606..ff95f6c 100644 --- a/lib/l10n/generated/app_localizations_de.dart +++ b/lib/l10n/generated/app_localizations_de.dart @@ -291,6 +291,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get no_matches_created_yet => 'Noch keine Spiele erstellt'; + @override + String get no_players_available => 'Keine Spieler:innen verfügbar'; + @override String get no_players_created_yet => 'Noch keine Spieler:in erstellt'; @@ -313,6 +316,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get no_statistics_available => 'Keine Statistiken verfügbar'; + @override + String get no_teams_available => 'Keine Teams verfügbar'; + @override String get none => 'Kein'; diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart index c0f9fcc..1060a9d 100644 --- a/lib/l10n/generated/app_localizations_en.dart +++ b/lib/l10n/generated/app_localizations_en.dart @@ -291,6 +291,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get no_matches_created_yet => 'No matches created yet'; + @override + String get no_players_available => 'No players available'; + @override String get no_players_created_yet => 'No players created yet'; @@ -313,6 +316,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get no_statistics_available => 'No statistics available'; + @override + String get no_teams_available => 'No teams available'; + @override String get none => 'None'; diff --git a/lib/presentation/views/main_menu/match_view/match_detail_view.dart b/lib/presentation/views/main_menu/match_view/match_detail_view.dart index 3087e6d..c6272b4 100644 --- a/lib/presentation/views/main_menu/match_view/match_detail_view.dart +++ b/lib/presentation/views/main_menu/match_view/match_detail_view.dart @@ -162,15 +162,24 @@ class _MatchDetailViewState extends State { title: loc.teams, icon: Icons.scoreboard, horizontalAlignment: CrossAxisAlignment.start, - content: Wrap( - alignment: WrapAlignment.start, - crossAxisAlignment: WrapCrossAlignment.start, - spacing: 12, - runSpacing: 8, - children: (localMatch.teams ?? []).map((team) { - return TeamCard(team: team); - }).toList(), - ), + content: + localMatch.teams != null && localMatch.teams!.isNotEmpty + ? Wrap( + alignment: WrapAlignment.start, + crossAxisAlignment: WrapCrossAlignment.start, + spacing: 12, + runSpacing: 8, + children: (localMatch.teams ?? []).map((team) { + return TeamCard(team: team); + }).toList(), + ) + : Text( + loc.no_teams_available, + style: const TextStyle( + fontSize: 14, + color: CustomTheme.textColor, + ), + ), ), ] else ...[ // Players @@ -178,19 +187,26 @@ class _MatchDetailViewState extends State { title: loc.players, icon: Icons.people, horizontalAlignment: CrossAxisAlignment.start, - content: Wrap( - alignment: WrapAlignment.start, - crossAxisAlignment: WrapCrossAlignment.start, - spacing: 12, - runSpacing: 8, - children: localMatch.players.map((player) { - return TextIconTile( - text: player.name, - suffixText: getNameCountText(player), - iconEnabled: false, - ); - }).toList(), - ), + content: localMatch.players.isNotEmpty + ? Wrap( + alignment: WrapAlignment.start, + crossAxisAlignment: WrapCrossAlignment.start, + spacing: 12, + runSpacing: 8, + children: localMatch.players.map((player) { + return TextIconTile( + text: player.name, + suffixText: getNameCountText(player), + ); + }).toList(), + ) + : Text( + loc.no_players_available, + style: const TextStyle( + fontSize: 14, + color: CustomTheme.textColor, + ), + ), ), ], const SizedBox(height: 15), diff --git a/lib/presentation/widgets/tiles/match_tile.dart b/lib/presentation/widgets/tiles/match_tile.dart index c3c6b4e..b3d326b 100644 --- a/lib/presentation/widgets/tiles/match_tile.dart +++ b/lib/presentation/widgets/tiles/match_tile.dart @@ -221,7 +221,9 @@ class _MatchTileState extends State { const SizedBox(height: 12), ], - if (match.teams != null && match.teams!.isNotEmpty) ...[ + if (match.teams != null && + match.teams!.isNotEmpty && + match.isTeamMatch) ...[ // Team display Text( loc.teams, @@ -275,10 +277,17 @@ class _MatchTileState extends State { return TextIconTile( text: player.name, suffixText: getNameCountText(player), - iconEnabled: false, ); }).toList(), ), + ] else ...[ + Text( + loc.no_players_available, + style: const TextStyle( + fontSize: 14, + color: CustomTheme.hintColor, + ), + ), ], ], ),