GameHistoryView anpassen #20
3 Participants
Notifications
Due Date
No due date set.
Blocks
#3 CreateGameView erstellen
liquid-development/game-tracker
#48 GameResultView erstellen
liquid-development/game-tracker
#62 GameResultView erstellen
liquid-development/game-tracker
#67 CreateGameView erstellen
liquid-development/game-tracker
#76 Fehlende Methoden für Games Datenbank inplementieren
liquid-development/game-tracker
Reference: liquid-development/game-tracker#20
Reference in New Issue
Block a user
Delete Branch "feature/2-gamehistoryview-anpassen"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Game-History-View Anpassen
Zugehörige Issue(s):
Closes #2
Beschreibung
Jetzt werden standardisierte GameTile's verwendet.
feature/2-gamehistoryview-anpassento Game-History-View AnpassenReview
Ich würde neue
GameTilesentwickeln welche eine eigene Border haben (änlichInfoTileund dann die Anordnung ggf überarbeiten (untereinander statt nebeneinander).@@ -194,1 +194,3 @@currentGame['date'],return GameTile(gameTitle: currentGame['title'],gameType: currentGame['game'],Remder Overflow bei den GameTiles
Game-History-View Anpassento WIP: Game-History-View AnpassenWIP: Game-History-View Anpassento Game-History-View Anpassen@@ -122,0 +18,4 @@late Future<List<Game>> _gameListFuture;late final AppDatabase db;late final List<Game> skeletonData = List.filled(Ich würde die Skeleton-Daten so anpassen, dass du nicht mehr machst als auf den Screen passen. Also bei mir sind das glaub ich so 5
ja save :) hab 10 eingestellt zum testen und dann vergessen zu ändern
@@ -188,3 +74,1 @@icon: Icons.search,title: 'Info',message: 'Kein Spiel mit den Suchparametern gefunden.',final bool isLoading = snapshot.connectionState == ConnectionState.waiting;Die Skeleton-Zeit ist viel kürzer als bei allen anderen Screens. Ich glaube das liegt an dieser Zeile, weil du hier die
isLoadingVariable setzt und nicht nach dem oben angegebenen 250ms delay.okay danke :) guck ich mir an
@@ -0,0 +17,4 @@}class _GameHistoryTileState extends State<GameHistoryTile> {String _formatDate(DateTime dateTime) {Funktionen eines Widgets immer nach der
build()Methode, diese soll in einem Widget immer als erstes kommen (nach den Variabel-Deklarationen)👍
@@ -0,0 +32,4 @@}}List<dynamic> _getAllPlayers() {Hier auch hinter
buid()Methode schieben👍
@@ -0,0 +101,4 @@const SizedBox(height: 8),if (group != null)Entweder die beiden Group Widgets in ein
VisibilitybzwOffstageWidget wrappen, oder in ein If-Statement zusammenführen:Von Docs: "Offstage can be used to measure the dimensions of a widget without bringing it on screen (yet). To hide a widget from view while it is not needed, prefer removing the widget from the tree entirely rather than keeping it alive in an Offstage subtree" also eher das if
Ja dann mach das lieber mit If
@@ -0,0 +125,4 @@if (group != null) const SizedBox(height: 12),if (winner != null)Hier auch zusammenfassen oder
Visibilitybzw.OffstageWidget nutzenAh und du müsstest noch ähnlich wie in der
GroupVieweinen Button zum erstellen von Spielen hinzufügen@@ -171,0 +59,4 @@return const Center(heightFactor: 4,child: Text('Error while loading recent games.',Errormessage anders, handelt sich ja nicht um recent games
jo
und besser standartisierte

top_centered_messagewie in GroupsView benutzen.Außerdem sieht das Alignement komisch aus:
hab das 1zu1 von felix kopiert
Ja das war ein schwerer Fehler, würde nichtmal von mir selbst kopieren
@@ -178,0 +67,4 @@(!snapshot.hasData || snapshot.data!.isEmpty)) {return const Center(heightFactor: 4,child: Text('No recent games available.'),Errormessage anders, handelt sich ja nicht um recent games
jo
und besser standartisierte

top_centered_messagewie in GroupsView benutzen.Außerdem sieht das Alignement komisch aus:
@@ -0,0 +2,4 @@import 'package:game_tracker/core/custom_theme.dart';import 'package:game_tracker/data/dto/game.dart';import 'package:game_tracker/presentation/widgets/tiles/text_icon_tile.dart';import 'package:intl/intl.dart';Wofür intl?
Zur berechnung vom datum :) idk ob das der optimalste weg ist
Aber nutzt du da nicht nur datetime?
Die
DateFormatklasse kommt daher:@@ -24,6 +24,7 @@ dependencies:json_schema: ^5.2.2file_saver: ^0.3.1clock: ^1.1.2intl: ^0.18.0Wofür intl?
siehe #20 (comment)
Stimmt das mach ich noch :)
Und
DoubleRowInfoTilekannst du dann auch löschen, wenn das nicht mehr gebraucht wird@@ -191,0 +99,4 @@itemBuilder: (BuildContext context, int index) {if (index == games.length) {return SizedBox(height: MediaQuery.paddingOf(context).bottom - 20,padding zu groß, zu viel platz unten ohne button, mit button evtl passend
@@ -0,0 +145,4 @@),const SizedBox(width: 8),Text('Winner: ${winner.name}',renderoverflow bei langen namen
@@ -0,0 +172,4 @@spacing: 6,runSpacing: 6,children: allPlayers.map((player) {final isWinner = winner != null && player.id == winner.id;is winenr wird nicht genutzt
Game-History-View Anpassento WIP: Game-History-View AnpassenWIP: Game-History-View Anpassento WIP: GameHistoryView anpassenmuss heute mein desktop neu aufsetzen und morgen mach ich mich an die ganzen issues
Der Bro macht einfach Sidequests von seinen Sidequests
sneeex referenced this pull request2025-11-25 22:23:59 +00:00
hahah ja hatte mies probleme mit meinen nvidia treibern auf fedora
WIP: GameHistoryView anpassento GameHistoryView anpassenHast du alle Änderungen angeguckt? Manche sind noch nicht als gelöst markiert?
oh hahahah
dachte ich hätte alles
ups
mach ich nachher :)
GameHistoryView anpassento WIP: GameHistoryView anpassen@mathiskir das sollte alles sein oder?
@@ -5,2 +8,4 @@import 'package:provider/provider.dart';import 'package:skeletonizer/skeletonizer.dart';class GameHistoryView extends StatefulWidget {Umbennenung zu
GameViewstand mal im Raum oder?Ist nicht ein GameView das was sich öffnet wenn man auf ein Game klickt?
@mathiskir hat die jetzt
GameResultViewgenannt, aber quatsch ihr euch da sonst nochmal abIch finde wir sollten beides von
Game....ViewinMatch...Viewumbenennen.Game = Das Spiel (Brettspiel, Kartenspiel)
Match = Eine Partie des Spiels
@flixcoo @mathiskir
Ja fand ich glaub ich sinnvoll. Dann müssten wir aber auch die entsprechenden Klassen umbenennen. Ich würde vorschlagen dass gesammelt in einem Ticket zu machen und deins so zu mergen
Ja würde ich auch sagen, weil dann ja sogar die Datenbank implementation geändert werden muss noch. Und auch unsere test json
ja, lass das hier erstmal rauslassen
@@ -191,0 +86,4 @@..sort((a, b) => b.createdAt.compareTo(a.createdAt))).toList();return Skeletonizer(Bitte das Custom Widget
AppSkeletonausdevelopmenthier noch Implementieren@@ -191,0 +110,4 @@height: MediaQuery.paddingOf(context).bottom - 80,);}return GameHistoryTile(game: games[index]);Es fehlt noch der Create Game Button
Der um ein Match zu erstellen? oder der um ein Game zu erstellen?
Digga xD der Button der zur
CreateGameViewführtBitte customwidthbutton mit breite 0,9 wie bei groupsview machen
@@ -0,0 +4,4 @@import 'package:game_tracker/presentation/widgets/tiles/text_icon_tile.dart';import 'package:intl/intl.dart';class GameHistoryTile extends StatefulWidget {(Code-Zeile ist falsch, weil die Datei wird nicht angezeigt)
doubleRowInfoTileentfernen, wird nicht mehr genutztcheck ich nicht. wo wird das denn verwendet?
Nirgendwo, deswegen kann es ja weg. Wurde vorher in
GameHistoryViewverwendetnirgendwo in meinem code steht
doubleRowInfoTile😭 oder ich bin blöd und finde es nicht@@ -0,0 +122,4 @@if (allPlayers.isNotEmpty) ...[const Text('Players:',Ggf. ohne Doppelpunkt? Da dass ja nur so ne Zwischenüberschrift ist und die Spielernamen ja nicht dahinter in der gleichen Zeile stehen
Unbedingt noch
developmentreinmergen, da sind einige neue Sachen mit reingekommenWIP: GameHistoryView anpassento GameHistoryView anpassen