MVP #141

Merged
flixcoo merged 705 commits from development into main 2026-01-09 12:55:50 +00:00
4 changed files with 19 additions and 19 deletions
Showing only changes of commit 1d4fdae84b - Show all commits

View File

@@ -6,8 +6,8 @@ import 'package:game_tracker/data/dto/match.dart';
import 'package:game_tracker/data/dto/player.dart'; import 'package:game_tracker/data/dto/player.dart';
import 'package:game_tracker/presentation/widgets/app_skeleton.dart'; import 'package:game_tracker/presentation/widgets/app_skeleton.dart';
import 'package:game_tracker/presentation/widgets/buttons/quick_create_button.dart'; import 'package:game_tracker/presentation/widgets/buttons/quick_create_button.dart';
import 'package:game_tracker/presentation/widgets/tiles/game_tile.dart';
import 'package:game_tracker/presentation/widgets/tiles/info_tile.dart'; import 'package:game_tracker/presentation/widgets/tiles/info_tile.dart';
import 'package:game_tracker/presentation/widgets/tiles/match_summary_tile.dart';
import 'package:game_tracker/presentation/widgets/tiles/quick_info_tile.dart'; import 'package:game_tracker/presentation/widgets/tiles/quick_info_tile.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -112,13 +112,13 @@ class _HomeViewState extends State<HomeView> {
visible: !isLoading && loadedRecentMatches.isNotEmpty, visible: !isLoading && loadedRecentMatches.isNotEmpty,
replacement: const Center( replacement: const Center(
heightFactor: 12, heightFactor: 12,
child: Text('No recent games available'), child: Text('No recent matches available'),
), ),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
MatchTile( MatchSummaryTile(
matchTitle: recentMatches[0].name, matchTitle: recentMatches[0].name,
game: 'Winner', game: 'Winner',
ruleset: 'Ruleset', ruleset: 'Ruleset',
@@ -132,20 +132,20 @@ class _HomeViewState extends State<HomeView> {
child: Divider(), child: Divider(),
), ),
if (loadedRecentMatches.length > 1) ...[ if (loadedRecentMatches.length > 1) ...[
MatchTile( MatchSummaryTile(
matchTitle: recentMatches[1].name, matchTitle: recentMatches[1].name,
game: 'Winner', game: 'Winner',
ruleset: 'Ruleset', ruleset: 'Ruleset',
players: _getPlayerText(recentMatches[1]), players: _getPlayerText(recentMatches[1]),
winner: recentMatches[1].winner == null winner: recentMatches[1].winner == null
? 'Game in progress...' ? 'Match in progress...'
: recentMatches[1].winner!.name, : recentMatches[1].winner!.name,
), ),
const SizedBox(height: 8), const SizedBox(height: 8),
] else ...[ ] else ...[
const Center( const Center(
heightFactor: 5.35, heightFactor: 5.35,
child: Text('No second game available'), child: Text('No second match available'),
), ),
], ],
], ],

View File

@@ -12,7 +12,7 @@ import 'package:game_tracker/presentation/views/main_menu/match_view/create_matc
import 'package:game_tracker/presentation/views/main_menu/match_view/match_result_view.dart'; import 'package:game_tracker/presentation/views/main_menu/match_view/match_result_view.dart';
import 'package:game_tracker/presentation/widgets/app_skeleton.dart'; import 'package:game_tracker/presentation/widgets/app_skeleton.dart';
import 'package:game_tracker/presentation/widgets/buttons/custom_width_button.dart'; import 'package:game_tracker/presentation/widgets/buttons/custom_width_button.dart';
import 'package:game_tracker/presentation/widgets/tiles/game_history_tile.dart'; import 'package:game_tracker/presentation/widgets/tiles/match_tile.dart';
import 'package:game_tracker/presentation/widgets/top_centered_message.dart'; import 'package:game_tracker/presentation/widgets/top_centered_message.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -30,7 +30,7 @@ class _MatchViewState extends State<MatchView> {
List<Match> matches = List.filled( List<Match> matches = List.filled(
4, 4,
Match( Match(
name: 'Skeleton Gamename', name: 'Skeleton match name',
group: Group( group: Group(
name: 'Group name', name: 'Group name',
members: List.filled(5, Player(name: 'Player')), members: List.filled(5, Player(name: 'Player')),
@@ -74,7 +74,7 @@ class _MatchViewState extends State<MatchView> {
height: MediaQuery.paddingOf(context).bottom - 80, height: MediaQuery.paddingOf(context).bottom - 80,
); );
} }
return GameHistoryTile( return MatchTile(
onTap: () async { onTap: () async {
Navigator.push( Navigator.push(
context, context,
@@ -96,7 +96,7 @@ class _MatchViewState extends State<MatchView> {
Positioned( Positioned(
bottom: MediaQuery.paddingOf(context).bottom, bottom: MediaQuery.paddingOf(context).bottom,
child: CustomWidthButton( child: CustomWidthButton(
text: 'Create Game', text: 'Create Match',
sizeRelativeToWidth: 0.90, sizeRelativeToWidth: 0.90,
onPressed: () async { onPressed: () async {
Navigator.push( Navigator.push(

View File

@@ -2,14 +2,14 @@ import 'package:flutter/material.dart';
import 'package:game_tracker/core/custom_theme.dart'; import 'package:game_tracker/core/custom_theme.dart';
import 'package:skeletonizer/skeletonizer.dart'; import 'package:skeletonizer/skeletonizer.dart';
class MatchTile extends StatefulWidget { class MatchSummaryTile extends StatefulWidget {
final String matchTitle; final String matchTitle;
final String game; final String game;
final String ruleset; final String ruleset;
final String players; final String players;
final String winner; final String winner;
const MatchTile({ const MatchSummaryTile({
super.key, super.key,
required this.matchTitle, required this.matchTitle,
required this.game, required this.game,
@@ -19,10 +19,10 @@ class MatchTile extends StatefulWidget {
}); });
@override @override
State<MatchTile> createState() => _MatchTileState(); State<MatchSummaryTile> createState() => _MatchSummaryTileState();
} }
class _MatchTileState extends State<MatchTile> { class _MatchSummaryTileState extends State<MatchSummaryTile> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return Column(

View File

@@ -4,17 +4,17 @@ import 'package:game_tracker/data/dto/match.dart';
import 'package:game_tracker/presentation/widgets/tiles/text_icon_tile.dart'; import 'package:game_tracker/presentation/widgets/tiles/text_icon_tile.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
class GameHistoryTile extends StatefulWidget { class MatchTile extends StatefulWidget {
final Match match; final Match match;
final VoidCallback onTap; final VoidCallback onTap;
const GameHistoryTile({super.key, required this.match, required this.onTap}); const MatchTile({super.key, required this.match, required this.onTap});
@override @override
State<GameHistoryTile> createState() => _GameHistoryTileState(); State<MatchTile> createState() => _MatchTileState();
} }
class _GameHistoryTileState extends State<GameHistoryTile> { class _MatchTileState extends State<MatchTile> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final group = widget.match.group; final group = widget.match.group;