import 'package:cubit_form/cubit_form.dart'; import 'package:flutter/material.dart'; import 'package:selfprivacy/logic/courierscubit.dart'; import 'package:selfprivacy/logic/courierformcubit.dart'; import 'package:selfprivacy/models/courier.dart'; import 'package:selfprivacy/ui/bottomsheet.dart'; import 'package:selfprivacy/ui/button.dart'; part 'courier.dart'; part 'courierdetails.dart'; class CouriersPage extends StatelessWidget { const CouriersPage({super.key}); @override Widget build(final BuildContext context) { final Widget child = BlocBuilder( builder: (final BuildContext context, final CouriersState state) { final List couriers = state.couriers; if (couriers.isEmpty) { if (state.isLoading) { return const Center( child: CircularProgressIndicator(), ); } return RefreshIndicator( onRefresh: () async { context.read().refresh(); }, child: Container( padding: const EdgeInsets.symmetric(horizontal: 15), child: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ ConstrainedBox( constraints: const BoxConstraints( minHeight: 40, minWidth: double.infinity, ), child: OutlinedButton( onPressed: () { context.read().refresh(); }, child: Text( 'Обновить', style: Theme.of(context).textTheme.button?.copyWith( color: Theme.of(context).colorScheme.primary, ), ), ), ), ], ), ), ), ); } return RefreshIndicator( onRefresh: () async { context.read().refresh(); }, child: ListView.builder( itemCount: couriers.length, itemBuilder: (final BuildContext context, final int index) => _Courier( courier: couriers[index], ), ), ); }, ); return Scaffold( appBar: PreferredSize( preferredSize: const Size.fromHeight(52), child: AppBar( title: const Padding( padding: EdgeInsets.only(top: 4.0), child: Text('Курьеры'), ), ), ), body: child, ); } }