import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'sample_data.dart';

class ShowBasket extends StatelessWidget {
  final Basket basket;
  final bool editable;
  const ShowBasket(this.basket, {this.editable = false, super.key});

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Expanded(
          child: getBasket(basket),
        ),
        const Divider(),
        ListTile(
            leading: const Icon(
              Icons.euro,
            ),
            title: const Text(
              'Kosten:',
            ),
            subtitle: Text(
              '${basket.price}',
            ),
            trailing: editable
                ? Row(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      FloatingActionButton(
                          backgroundColor: Colors.redAccent.shade100,
                          child: const Icon(Icons.remove_shopping_cart),
                          onPressed: () {}),
                      const SizedBox(
                        width: 10,
                      ),
                      FloatingActionButton(
                          child: const Icon(Icons.shopping_cart_checkout),
                          onPressed: () {}),
                    ],
                  )
                : null),
      ],
    );
  }

  ListView getBasket(Basket basket) {
    return ListView.builder(
      itemCount: basket.purchases.length,
      itemBuilder: (context, index) {
        return Card(
          child: ListTile(
              leading: Text(
                basket.purchases.keys.elementAt(index).category.icon,
                style: const TextStyle(fontSize: 24),
              ),
              title: Text(basket.purchases.keys.elementAt(index).name),
              subtitle: Text(
                  '${basket.purchases.values.elementAt(index)} ${basket.purchases.keys.elementAt(index).unit}'),
              trailing: editable
                  ? SizedBox(
                      width: 100,
                      child: TextField(
                          keyboardType: TextInputType.number,
                          inputFormatters: <TextInputFormatter>[
                            FilteringTextInputFormatter.digitsOnly
                          ]),
                    )
                  : null),
        );
      },
    );
  }
}