import 'package:flutter/material.dart'; import 'package:thesis_shop/bloc/cart_bloc.dart'; import 'package:thesis_shop/bloc_provider.dart'; import 'package:thesis_shop/models/product.dart'; import 'package:thesis_shop/widgets/number_picker.dart'; class ProductItem extends StatelessWidget { final Product product; const ProductItem({Key? key, required this.product}) : super(key: key); @override Widget build(BuildContext context) { final cartBloc = AppState.of(context).blocProvider.cartBloc; return ListTile( title: Text('${product.title} (${product.priceAsString}€/Stück)'), trailing: StreamBuilder( stream: cartBloc.cartStream, initialData: cartBloc.cart, builder: (context, snapshot) { return NumberPicker( value: snapshot.requireData[product] ?? 0, onUp: () => cartBloc.quantityEventSink .add(IncreaseQuantityEvent(product)), onDown: () => cartBloc.quantityEventSink .add(DecreaseQuantityEvent(product)), ); }), ); } }