Skip to content

Commit ab576d6

Browse files
committed
Start adding a team profile dialog
1 parent 06db1ea commit ab576d6

File tree

5 files changed

+101
-14
lines changed

5 files changed

+101
-14
lines changed

lib/ui/screens/simulation/large/subscreens/__teams_screen.dart

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -152,16 +152,30 @@ class _ListView extends StatelessWidget {
152152
return CountryTeamOverviewListTile(
153153
team: teams.elementAt(index),
154154
onTap: () async {
155+
final team = teams.elementAt(index);
156+
final flagsRepo = context.read<CountryFlagsRepo>();
155157
await showDialog(
156158
context: context,
157159
builder: (context) {
158-
return SizedBox(
159-
child: AlertDialog(
160-
title: Text('Profil drużyny'),
161-
content: SizedBox(
162-
width: MediaQuery.of(context).size.width * 0.8,
163-
height: MediaQuery.of(context).size.height * 0.8,
164-
child: Placeholder(),
160+
return MultiProvider(
161+
providers: [
162+
Provider.value(value: flagsRepo),
163+
],
164+
child: Center(
165+
child: ClipRRect(
166+
borderRadius: BorderRadius.circular(15),
167+
child: Container(
168+
width: MediaQuery.of(context).size.width * 0.7,
169+
height: MediaQuery.of(context).size.height * 0.8,
170+
padding: const EdgeInsets.all(6),
171+
decoration: BoxDecoration(
172+
color: Theme.of(context).colorScheme.surfaceContainerHigh,
173+
borderRadius: BorderRadius.circular(15),
174+
),
175+
child: CountryTeamProfileWidget(
176+
team: team,
177+
),
178+
),
165179
),
166180
),
167181
);

lib/ui/screens/simulation/large/widgets/teams/country_team_overview_list_tile.dart

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import 'package:flutter/material.dart';
2-
import 'package:material_symbols_icons/material_symbols_icons.dart';
3-
import 'package:sj_manager/models/user_db/sex.dart';
42
import 'package:sj_manager/models/user_db/team/country_team/country_team.dart';
53
import 'package:sj_manager/ui/reusable_widgets/countries/country_flag.dart';
4+
import 'package:sj_manager/utils/icons.dart';
65

76
class CountryTeamOverviewListTile extends StatelessWidget {
87
const CountryTeamOverviewListTile({
@@ -20,10 +19,6 @@ class CountryTeamOverviewListTile extends StatelessWidget {
2019

2120
@override
2221
Widget build(BuildContext context) {
23-
final sexIconData = switch (team.sex) {
24-
Sex.male => Symbols.male,
25-
Sex.female => Symbols.female,
26-
};
2722
final countryName = team.country.multilingualName.translate(context);
2823
final titleText = countryName;
2924

@@ -33,7 +28,7 @@ class CountryTeamOverviewListTile extends StatelessWidget {
3328
width: 30,
3429
),
3530
title: Text(titleText),
36-
trailing: Icon(sexIconData),
31+
trailing: Icon(sexIconData(team.sex)),
3732
onTap: onTap,
3833
selected: selected,
3934
);
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:gap/gap.dart';
3+
import 'package:material_symbols_icons/material_symbols_icons.dart';
4+
import 'package:sj_manager/models/user_db/team/country_team/country_team.dart';
5+
import 'package:sj_manager/ui/reusable_widgets/countries/country_flag.dart';
6+
import 'package:sj_manager/utils/icons.dart';
7+
8+
class CountryTeamProfileWidget extends StatefulWidget {
9+
const CountryTeamProfileWidget({
10+
super.key,
11+
required this.team,
12+
});
13+
14+
final CountryTeam team;
15+
16+
@override
17+
State<CountryTeamProfileWidget> createState() => _CountryTeamProfileWidgetState();
18+
}
19+
20+
class _CountryTeamProfileWidgetState extends State<CountryTeamProfileWidget> {
21+
@override
22+
Widget build(BuildContext context) {
23+
final backgroundColor = Theme.of(context).colorScheme.surfaceContainerHigh;
24+
return Scaffold(
25+
backgroundColor: backgroundColor,
26+
appBar: AppBar(
27+
backgroundColor: backgroundColor,
28+
title: Row(
29+
children: [
30+
CountryFlag(
31+
country: widget.team.country,
32+
height: 20,
33+
),
34+
const Gap(13),
35+
Text(widget.team.country.multilingualName.translate(context)),
36+
const Gap(8),
37+
Icon(sexIconData(widget.team.sex)),
38+
],
39+
),
40+
),
41+
body: DefaultTabController(
42+
length: 3,
43+
child: Column(
44+
children: [
45+
TabBar(
46+
tabs: [
47+
Tab(
48+
text: 'Przegląd',
49+
icon: Icon(Symbols.overview),
50+
),
51+
Tab(
52+
text: 'Kadry',
53+
icon: Icon(Symbols.groups),
54+
),
55+
Tab(
56+
text: 'Statystyki',
57+
icon: Icon(Symbols.analytics),
58+
),
59+
],
60+
)
61+
],
62+
),
63+
),
64+
);
65+
}
66+
}

lib/ui/screens/simulation/simulation_route.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import 'package:sj_manager/models/simulation/database/helper/simulation_database
2020
import 'package:sj_manager/models/simulation/flow/simulation_mode.dart';
2121
import 'package:sj_manager/models/user_db/sex.dart';
2222
import 'package:sj_manager/repositories/countries/countries_repo.dart';
23+
import 'package:sj_manager/repositories/countries/country_flags/country_flags_repo.dart';
2324
import 'package:sj_manager/ui/database_item_editors/fields/my_search_bar.dart';
2425
import 'package:sj_manager/ui/responsiveness/responsive_builder.dart';
2526
import 'package:sj_manager/ui/reusable_widgets/card_with_title.dart';
@@ -39,6 +40,7 @@ import 'package:sj_manager/ui/screens/simulation/large/widgets/team/team_screen/
3940
import 'package:sj_manager/ui/screens/simulation/large/widgets/team/team_screen/team_screen_personal_coach_bottom_bar.dart';
4041
import 'package:sj_manager/ui/screens/simulation/large/widgets/team/team_screen/team_summary_card.dart';
4142
import 'package:sj_manager/ui/screens/simulation/large/widgets/teams/country_team_overview_list_tile.dart';
43+
import 'package:sj_manager/ui/screens/simulation/large/widgets/teams/country_team_profile_widget.dart';
4244
import 'package:sj_manager/utils/filtering.dart';
4345
import 'package:sj_manager/utils/show_dialog.dart';
4446
import 'package:sj_manager/utils/translating.dart';

lib/utils/icons.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:material_symbols_icons/material_symbols_icons.dart';
3+
import 'package:sj_manager/models/user_db/sex.dart';
4+
5+
IconData sexIconData(Sex sex) {
6+
return switch (sex) {
7+
Sex.male => Symbols.male,
8+
Sex.female => Symbols.female,
9+
};
10+
}

0 commit comments

Comments
 (0)