GiteaClient/lib/widget/search_page.dart
Bazsalanszky 676e1540c7
All checks were successful
ci/woodpecker/push/flutterBuild Pipeline was successful
Basic search page
2022-05-15 20:58:46 +02:00

63 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:gitea_client/cubit/search_bloc.dart';
import 'package:gitea_client/widget/search_list.dart';
import '../model/user.dart';
import '../service/gitea_service.dart';
class SearchPage extends StatefulWidget {
final SavedUser user;
const SearchPage({Key? key, required this.user}) : super(key: key);
@override
_SearchPage createState() => _SearchPage();
}
class _SearchPage extends State<SearchPage> {
final search = TextEditingController();
@override
void initState() {
search.addListener(_onSearch);
}
void _onSearch() {
print("Input: ${search.text}");
context.read<SearchBloc>().add(SearchInputEvent(search.text));
}
@override
Widget build(BuildContext context) {
final media = MediaQuery.of(context).size;
return Center(
child: SizedBox(
width: (media.width > 600) ? media.width * 0.5 : media.width * 0.9,
child: BlocProvider(
create: (_) => SearchBloc(
giteaService: GiteaService(apiAccess: widget.user.apiAccess))
..add(SearchInputEvent(search.text)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
"Search",
style: Theme.of(context).textTheme.headline4,
),
TextField(
decoration: const InputDecoration(
labelText: "Search text",
),
controller: search,
),
SearchList(
user: widget.user,
)
],
),
),
));
}
}