import 'package:cubit_form/cubit_form.dart'; import 'package:flutter/material.dart'; import 'package:selfprivacy/logic/itemformcubit.dart'; import 'package:selfprivacy/logic/itemscubit.dart'; import 'package:selfprivacy/models/item.dart'; import 'package:selfprivacy/ui/bottomsheet.dart'; import 'package:selfprivacy/ui/button.dart'; part 'item.dart'; part 'itemsdetails.dart'; class ItemsPage extends StatelessWidget { const ItemsPage({super.key}); @override Widget build(final BuildContext context) { final Widget child = BlocBuilder( builder: (final BuildContext context, final ItemsState state) { final List items = state.items; if (items.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: items.length, itemBuilder: (final BuildContext context, final int index) => _Item( item: items[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, ); } }