CreateGameView erstellen #67

Merged
sneeex merged 35 commits from feature/3-creategameview-erstellen into development 2025-12-10 20:43:54 +00:00
Showing only changes of commit 4dbc106e38 - Show all commits

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:game_tracker/core/custom_theme.dart';
import 'package:game_tracker/core/enums.dart';
import 'package:game_tracker/presentation/widgets/text_input/custom_search_bar.dart';
import 'package:game_tracker/presentation/widgets/tiles/title_description_list_tile.dart';
class ChooseGameView extends StatefulWidget {
@@ -19,6 +20,7 @@ class ChooseGameView extends StatefulWidget {
class _ChooseGameViewState extends State<ChooseGameView> {
late int selectedGameIndex;
final TextEditingController searchBarController = TextEditingController();
@override
void initState() {
@@ -39,26 +41,36 @@ class _ChooseGameViewState extends State<ChooseGameView> {
),
centerTitle: true,
),
body: ListView.builder(
padding: const EdgeInsets.only(bottom: 85),
itemCount: widget.games.length,
itemBuilder: (BuildContext context, int index) {
return TitleDescriptionListTile(
title: widget.games[index].$1,
description: widget.games[index].$2,
badgeText: translateRulesetToString(widget.games[index].$3),
isHighlighted: selectedGameIndex == index,
onPressed: () async {
setState(() {
selectedGameIndex = index;
});
Future.delayed(const Duration(milliseconds: 500), () {
if (!context.mounted) return;
Navigator.of(context).pop(selectedGameIndex);
});
},
);
},
body: Column(
children: [
CustomSearchBar(
controller: searchBarController,
hintText: 'Game Name',
),
const SizedBox(height: 5),
Expanded(
child: ListView.builder(
itemCount: widget.games.length,
itemBuilder: (BuildContext context, int index) {
return TitleDescriptionListTile(
title: widget.games[index].$1,
description: widget.games[index].$2,
badgeText: translateRulesetToString(widget.games[index].$3),
isHighlighted: selectedGameIndex == index,
flixcoo marked this conversation as resolved Outdated

Es ist kein OnChanged implementiert, die search functionality ist insgesamt nicht gegeben hier.

Note: Das onChanged sollte aber vllt. auch required sein in der CustomSearchBar (weiß gerade nicht ob ich das aus nem grund optional gelassen habe, macht aber ja glaube keinen sinn oder?)

Es ist kein OnChanged implementiert, die search functionality ist insgesamt nicht gegeben hier. Note: Das onChanged sollte aber vllt. auch required sein in der CustomSearchBar (weiß gerade nicht ob ich das aus nem grund optional gelassen habe, macht aber ja glaube keinen sinn oder?)

Also ich habs explizit weggelassen, weil ich der einfachhalt halber das aktuell ausgesuchte Spiel über einen Index markiere. Wenn ich das jetzt implementieren würde, müsste ich dass unnötig kompliziert implementieren, weil die Games am Ende eh eine ID haben über die ich das markierte Identifizieren kann, deswegen würd ich das an dieser Stelle weglassen

Also ich habs explizit weggelassen, weil ich der einfachhalt halber das aktuell ausgesuchte Spiel über einen Index markiere. Wenn ich das jetzt implementieren würde, müsste ich dass unnötig kompliziert implementieren, weil die Games am Ende eh eine ID haben über die ich das markierte Identifizieren kann, deswegen würd ich das an dieser Stelle weglassen

dann mach die searchbar weg, entweder searchbar und functionality oder nicht, aber nicht so halbe sachen.

dann mach die searchbar weg, entweder searchbar und functionality oder nicht, aber nicht so halbe sachen.

Ja aber das ist ja auch kacke, das layout an sich soll ja schon stehen

Ja aber das ist ja auch kacke, das layout an sich soll ja schon stehen

Ja aber das ist ja auch kacke, das layout an sich soll ja schon stehen

dann mach die functionality rein, entweder oder.
Du hast ja nur kein bock

> Ja aber das ist ja auch kacke, das layout an sich soll ja schon stehen dann mach die functionality rein, entweder oder. Du hast ja nur kein bock
onPressed: () async {
setState(() {
selectedGameIndex = index;
});
Future.delayed(const Duration(milliseconds: 500), () {
if (!context.mounted) return;
Navigator.of(context).pop(selectedGameIndex);
});
},
);
},
),
),
],
),
flixcoo marked this conversation as resolved Outdated

warum ist unselecten hier nicht implementiert, beim choose group view aber schon?

warum ist unselecten hier nicht implementiert, beim choose group view aber schon?

ups, vergessen

ups, vergessen
);
}