// lib/presentation/pages/offers_page.dart import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:proxibuy/presentation/offer/bloc/offer_bloc.dart'; import 'package:proxibuy/presentation/offer/bloc/widgets/offer_card.dart'; import 'package:proxibuy/presentation/widgets/gps_dialog.dart'; class OffersPage extends StatefulWidget { const OffersPage({super.key}); @override State createState() => _OffersPageState(); } class _OffersPageState extends State { @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) async { await showGPSDialog(context); if (mounted) { context.read().add(FetchNearbyOffers()); } }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('تخفیف‌های اطراف من'), ), body: BlocBuilder( builder: (context, state) { if (state is OfferLoading) { return const Center(child: CircularProgressIndicator()); } if (state is OfferSuccess) { return ListView.builder( itemCount: state.offers.length, itemBuilder: (context, index) { final offer = state.offers[index]; return OfferCard(offer: offer); }, ); } if (state is OfferFailure) { return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text(state.message), const SizedBox(height: 16), ElevatedButton( onPressed: () { context.read().add(FetchNearbyOffers()); }, child: const Text('تلاش مجدد'), ) ], ), ); } return const Center(child: Text('برای شروع، صفحه را رفرش کنید')); }, ), ); } }