favorite_page_view(refactor)

 avatar
unknown
dart
5 months ago
1.9 kB
2
Indexable
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../../core/common/app/providers/charge_stations_provider.dart';
import '../../domain/entities/charger_station.dart';
import '../bloc/find_bloc.dart';
import '../views/chargerstation_detail_screen.dart';
import '../widgets/chargerstation_item.dart';

class FavoritePageView extends StatelessWidget {
  const FavoritePageView({super.key, required this.favoriteChargeStations});

  final List<ChargerStation> favoriteChargeStations;

  @override
  Widget build(BuildContext context) {
    return Consumer<ChargeStationsProvider>(builder: (_, provider, __) {
      return Padding(
        padding: EdgeInsets.only(
            top: MediaQuery.of(context).size.height * 0.19,
            right: 16,
            left: 16),
        child: SingleChildScrollView(
          child: ListView.builder(
              physics: const NeverScrollableScrollPhysics(),
              shrinkWrap: true,
              itemCount: favoriteChargeStations.length,
              itemBuilder: (context, index) {
                return InkWell(
                  onTap: () {
                    provider.selectFavoriteChargeStation(
                        favoriteChargeStations[index]);
                    Navigator.pushNamed(
                        context, ChargerstationDetail.routeName);
                  },
                  child: ChargerstationItem(
                    chargerstation: favoriteChargeStations[index],
                    onNavigationClick: () {
                      context.read<FindBloc>().add(OpenMapsNavigationEvent(
                          favoriteChargeStations[index].coordinates));
                    },
                  ),
                );
              }),
        ),
      );
    });
  }
}
Editor is loading...
Leave a Comment