51 lines
2.2 KiB
Dart
51 lines
2.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:intl/intl.dart';
|
|
import 'package:tetra_stats/data_objects/record_single.dart';
|
|
import 'package:tetra_stats/data_objects/singleplayer_stream.dart';
|
|
import 'package:tetra_stats/gen/strings.g.dart';
|
|
import 'package:tetra_stats/utils/relative_timestamps.dart';
|
|
import 'package:tetra_stats/utils/text_shadow.dart';
|
|
import 'package:tetra_stats/views/singleplayer_record_view.dart';
|
|
import 'package:tetra_stats/widgets/sp_trailing_stats.dart';
|
|
import 'package:tetra_stats/widgets/text_timestamp.dart';
|
|
|
|
class RecentSingleplayerGames extends StatelessWidget{
|
|
final SingleplayerStream recent;
|
|
final bool hideTitle;
|
|
|
|
const RecentSingleplayerGames({required this.recent, this.hideTitle = false, super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Column(
|
|
children: [
|
|
if (!hideTitle) Padding(
|
|
padding: const EdgeInsets.only(bottom: 8.0),
|
|
child: Text(t.recent, style: const TextStyle(height: 0.1, fontFamily: "Eurostile Round Extended", fontSize: 18)),
|
|
),
|
|
for(RecordSingle record in recent.records) ListTile(
|
|
onTap: () => Navigator.push(context, MaterialPageRoute(builder: (context) => SingleplayerRecordView(record: record))),
|
|
leading: Text(
|
|
switch (record.gamemode){
|
|
"40l" => "40L",
|
|
"blitz" => "BLZ",
|
|
"5mblast" => "5MB",
|
|
String() => "huh",
|
|
},
|
|
style: const TextStyle(fontFamily: "Eurostile Round", fontSize: 28, shadows: textShadow, height: 0.9)
|
|
),
|
|
title: Text(
|
|
switch (record.gamemode){
|
|
"40l" => get40lTime(record.stats.finalTime.inMicroseconds),
|
|
"blitz" => t.blitzScore(p: NumberFormat.decimalPattern().format(record.stats.score)),
|
|
"5mblast" => get40lTime(record.stats.finalTime.inMicroseconds),
|
|
String() => "huh",
|
|
},
|
|
style: Theme.of(context).textTheme.displayLarge),
|
|
subtitle: Text(timestamp(record.timestamp), style: const TextStyle(color: Colors.grey, height: 0.85)),
|
|
trailing: SpTrailingStats(record, record.gamemode)
|
|
)
|
|
],
|
|
);
|
|
}
|
|
} |