Untitled
unknown
dart
5 months ago
3.4 kB
3
Indexable
// ignore_for_file: unnecessary_const import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/svg.dart'; import 'package:provider/provider.dart'; import '../../../../core/common/app/providers/charge_stations_provider.dart'; import '../../../../core/extensions/context_extensions.dart'; import '../../../../core/res/colours.dart'; import '../../../../core/res/media_res.dart'; import '../../domain/entities/filter.dart'; import '../bloc/find_bloc.dart'; import 'filter_dialog.dart'; class ChargerstationSearchBar extends StatefulWidget { final TabController tabController; const ChargerstationSearchBar({super.key, required this.tabController}); @override State<ChargerstationSearchBar> createState() => _ChargerstationSearchBarState(); } class _ChargerstationSearchBarState extends State<ChargerstationSearchBar> { final TextEditingController controller = TextEditingController(); @override void dispose() { controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Container( padding: const EdgeInsets.symmetric(horizontal: 16), margin: EdgeInsets.only( top: MediaQuery.of(context).size.height * 0.06, bottom: 12), decoration: BoxDecoration( borderRadius: BorderRadius.circular(12), border: Border.all(color: Colours.searchBorder, width: 1), color: Colors.white, ), child: TextField( controller: controller, onChanged: (query) { widget.tabController.animateTo(0); context.read<ChargeStationsProvider>().searchChargeStations( query, ); }, cursorColor: Colours.secondaryColour, style: const TextStyle( fontSize: 16, color: Colours.blackColour, fontWeight: FontWeight.w400, ), decoration: InputDecoration( floatingLabelBehavior: FloatingLabelBehavior.never, contentPadding: const EdgeInsets.symmetric(vertical: 12), icon: const Icon( Icons.search, color: Colours.greyColour, ), suffixIcon: InkWell( onTap: () { showModalBottomSheet( context: context, builder: (_) => FilterDialog( onFilter: (Filter filter) { debugPrint(filter.toString()); context .read<FindBloc>() .add(FilterChargeStationsEvent(filter)); }, )); }, child: SvgPicture.asset( MediaRes.filterIcon, ), ), suffixIconConstraints: const BoxConstraints(minWidth: 24, maxHeight: 24), labelText: 'Find Charger Station', labelStyle: const TextStyle( fontSize: 16, color: Colours.secondaryColourDisabled), enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.transparent, width: 0), ), focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.transparent, width: 0), ), ), ), ); } }
Editor is loading...
Leave a Comment