Update UI
Dieser Commit ist enthalten in:
Ursprung
2278546f01
Commit
f1f3c5f610
@ -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,
|
||||
);
|
||||
|
@ -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(
|
||||
|
@ -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: "),
|
||||
Column(
|
||||
children: [
|
||||
const Tooltip(
|
||||
message: "Deadline",
|
||||
child: Icon(Icons.block),
|
||||
),
|
||||
DateTimeEditor((p0) {
|
||||
deadlineState.value = p0;
|
||||
changed.value = true;
|
||||
}, deadlineState.value, true),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Row(
|
||||
Column(
|
||||
children: [
|
||||
const Text("Start: "),
|
||||
const Tooltip(
|
||||
message: "Start",
|
||||
child: Icon(Icons.swipe_right_alt),
|
||||
),
|
||||
DateTimeEditor((p0) {
|
||||
startDateState.value = p0;
|
||||
changed.value = true;
|
||||
}, startDateState.value, true),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Row(
|
||||
Column(
|
||||
children: [
|
||||
const Text("End: "),
|
||||
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),
|
||||
],
|
||||
),
|
||||
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,
|
||||
),
|
||||
|
@ -23,18 +23,27 @@ 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(
|
||||
return ListView(
|
||||
children: [
|
||||
ListTile(
|
||||
title: const Text("Teams"),
|
||||
leading: CircleAvatar(
|
||||
child: Text(teams.length.toString()),
|
||||
),
|
||||
),
|
||||
const Divider(),
|
||||
for (final team in teams)
|
||||
ListTile(
|
||||
title: Text(team.name),
|
||||
leading: CircleAvatar(
|
||||
backgroundColor: team.color,
|
||||
@ -48,9 +57,10 @@ class TeamList extends HookConsumerWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
itemCount: teams.length,
|
||||
subtitle: Text(
|
||||
"Fights: ${fightCount[team.id] ?? 0}",
|
||||
)),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren