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 { final search = TextEditingController(); @override void initState() { search.addListener(_onSearch); } void _onSearch() { print("Input: ${search.text}"); context.read().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, ) ], ), ), )); } }