All checks were successful
ci/woodpecker/push/flutterBuild Pipeline was successful
63 lines
1.6 KiB
Dart
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,
|
|
)
|
|
],
|
|
),
|
|
),
|
|
));
|
|
}
|
|
}
|