import 'package:fcs/domain/entities/discount.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/my_data_table.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class InvoiceDiscountList extends StatelessWidget {
  final List<Discount> discounts;

  const InvoiceDiscountList({
    Key key,
    this.discounts,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          centerTitle: true,
          leading: new IconButton(
            icon: new Icon(CupertinoIcons.back),
            onPressed: () => Navigator.pop(context),
          ),
          backgroundColor: primaryColor,
          title: LocalText(
            context,
            "invoice.shipment.discount.title",
            fontSize: 20,
            color: Colors.white,
          ),
        ),
        body: Padding(
          padding: const EdgeInsets.all(8.0),
          child: table(context),
        ));
  }

  Widget table(BuildContext context) {
    return MyDataTable(
      headingRowHeight: 40,
      columns: [
        MyDataColumn(
          label: LocalText(
            context,
            "discount.code",
            color: Colors.grey,
          ),
        ),
        MyDataColumn(
          label: LocalText(
            context,
            "discount.amount",
            color: Colors.grey,
          ),
        ),
      ],
      rows: getRows(context),
    );
  }

  List<MyDataRow> getRows(BuildContext context) {
    if (discounts == null) {
      return [];
    }
    var rows = discounts.map((c) {
      return MyDataRow(
        onSelectChanged: (value) => Navigator.pop(context, c),
        cells: [
          MyDataCell(new Text(
            c.code ?? "",
            style: textStyle,
          )),
          MyDataCell(
            Row(
              mainAxisAlignment: MainAxisAlignment.end,
              children: [
                Text(c.amount?.toStringAsFixed(2) ?? "0", style: textStyle),
              ],
            ),
          ),
        ],
      );
    }).toList();

    return rows;
  }
}
