Added searchbar

This commit is contained in:
2025-11-28 23:14:13 +01:00
parent 236a737fd1
commit 4dbc106e38

View File

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