1
0
Dieser Commit ist enthalten in:
Chaoscaot 2023-04-12 00:10:59 +02:00
Ursprung 2278546f01
Commit f1f3c5f610
4 geänderte Dateien mit 92 neuen und 49 gelöschten Zeilen

Datei anzeigen

@ -82,12 +82,12 @@ class DevServerStarterApp extends StatelessWidget {
title: 'Steamwar Multitool',
theme: ThemeData(
useMaterial3: true,
colorSchemeSeed: const Color(0xFFFFFF55),
colorSchemeSeed: Colors.blue,
),
darkTheme: ThemeData(
brightness: Brightness.dark,
useMaterial3: true,
colorSchemeSeed: const Color(0xFFFFFF55),
colorSchemeSeed: Colors.amber,
),
debugShowCheckedModeBanner: false,
);

Datei anzeigen

@ -90,6 +90,13 @@ class EventFightList extends HookConsumerWidget {
},
label: const Text("Generate Fight"),
icon: const Icon(Icons.shuffle)),
const Spacer(),
Tooltip(
message: "Fights",
child: CircleAvatar(
child: Text(fights.value.length.toString()),
),
),
],
),
Row(

Datei anzeigen

@ -62,6 +62,20 @@ class LoadedEventScreen extends HookConsumerWidget {
value.firstWhere((element) => element.db == event.schemType)));
});
final fightCount = useMemoized(() {
Map<int, int> fightCount = {};
for (var team in eventData.teams) {
fightCount[team.id] = 0;
}
for (var fight in eventData.fights) {
fightCount[fight.blueTeam.id] =
(fightCount[fight.blueTeam.id] ?? 0) + 1;
fightCount[fight.redTeam.id] = (fightCount[fight.redTeam.id] ?? 0) + 1;
}
return fightCount;
}, [eventData.fights, eventData.teams]);
final changed = useState(false);
return Scaffold(
appBar: AppBar(
@ -183,36 +197,48 @@ class LoadedEventScreen extends HookConsumerWidget {
},
),
const SizedBox(height: 8),
Row(
Wrap(
alignment: WrapAlignment.spaceBetween,
children: [
const Text("Deadline: "),
DateTimeEditor((p0) {
deadlineState.value = p0;
changed.value = true;
}, deadlineState.value, true),
Column(
children: [
const Tooltip(
message: "Deadline",
child: Icon(Icons.block),
),
DateTimeEditor((p0) {
deadlineState.value = p0;
changed.value = true;
}, deadlineState.value, true),
],
),
Column(
children: [
const Tooltip(
message: "Start",
child: Icon(Icons.swipe_right_alt),
),
DateTimeEditor((p0) {
startDateState.value = p0;
changed.value = true;
}, startDateState.value, true),
],
),
Column(
children: [
const Tooltip(
message: "End",
child: Icon(Icons.swipe_left_alt),
),
DateTimeEditor((p0) {
endDateState.value = p0;
changed.value = true;
}, endDateState.value, true),
],
),
],
),
const SizedBox(height: 8),
Row(
children: [
const Text("Start: "),
DateTimeEditor((p0) {
startDateState.value = p0;
changed.value = true;
}, startDateState.value, true),
],
),
const SizedBox(height: 8),
Row(
children: [
const Text("End: "),
DateTimeEditor((p0) {
endDateState.value = p0;
changed.value = true;
}, endDateState.value, true),
],
),
const SizedBox(height: 8),
const SizedBox(height: 16),
Row(
children: [
SizedBox(
@ -316,7 +342,7 @@ class LoadedEventScreen extends HookConsumerWidget {
),
],
),
TeamList(eventData.teams),
TeamList(eventData.teams, fightCount),
EventFightList(
eventData: eventData,
),

Datei anzeigen

@ -23,34 +23,44 @@ import 'package:steamwar_multitool/src/types/types.dart';
class TeamList extends HookConsumerWidget {
final List<Team> teams;
final Map<int, int> fightCount;
const TeamList(
this.teams, {
this.teams,
this.fightCount, {
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context, WidgetRef ref) {
return ListView.builder(
itemBuilder: (context, index) {
final team = teams[index];
return ListTile(
title: Text(team.name),
return ListView(
children: [
ListTile(
title: const Text("Teams"),
leading: CircleAvatar(
backgroundColor: team.color,
child: Text(
team.kuerzel,
style: TextStyle(
color: team.color.computeLuminance() > 0.4
? Colors.black
: Colors.white,
fontSize: 12,
),
),
child: Text(teams.length.toString()),
),
);
},
itemCount: teams.length,
),
const Divider(),
for (final team in teams)
ListTile(
title: Text(team.name),
leading: CircleAvatar(
backgroundColor: team.color,
child: Text(
team.kuerzel,
style: TextStyle(
color: team.color.computeLuminance() > 0.4
? Colors.black
: Colors.white,
fontSize: 12,
),
),
),
subtitle: Text(
"Fights: ${fightCount[team.id] ?? 0}",
)),
],
);
}
}