import 'package:flutter/material.dart';
import 'package:tour_travel_agr/helper/components_widget/custom_appbar.dart';
import 'package:tour_travel_agr/helper/components_widget/transaction_list.dart';
import 'package:tour_travel_agr/helper/widget_responsive.dart';
import 'package:tour_travel_agr/resource/assets.dart';
import 'package:tour_travel_agr/resource/colors.dart';
import 'package:tour_travel_agr/resource/font.dart';
import 'package:tour_travel_agr/resource/size.dart';
import 'package:tour_travel_agr/resource/style.dart';

class HistoryView extends StatelessWidget {
  const HistoryView({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: ColorManager.backgroundColor,
      body: ScreenResponsive(
        widget: const BodyWidget(),
        widthScreen: MediaQuery.of(context).size.width,
      ),
    );
  }
}

class BodyWidget extends StatelessWidget {
  const BodyWidget({
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(
        top: AppPadding.safeAreaTop(context),
        left: AppPadding.p20,
        right: AppPadding.p20,
        bottom: AppPadding.safeAreaBot(context),
      ),
      child: Column(
        children: [
          const CustomAppBar(text: "Transaksi"),
          Container(
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(
                5,
              ),
              border: Border.all(
                color: ColorManager.grey.withOpacity(
                  0.25,
                ),
              ),
            ),
            margin: EdgeInsets.only(
              top: AppMargin.m16,
              bottom: AppMargin.m20,
            ),
            padding: EdgeInsets.symmetric(
              horizontal: AppPadding.p20,
              vertical: AppPadding.p9,
            ),
            child: Center(
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Text(
                    "24 Maret 2023",
                    style: getSemiBoldStyle(
                      color: Colors.black,
                      fontFamily: FontConstants.openSans,
                    ),
                  ),
                  Image(
                    image: AssetImage(
                      Assets.calenderIcon,
                    ),
                  )
                ],
              ),
            ),
          ),
          Row(
            children: [
              WidgetHead(
                text: "Transaksi",
                icon: Assets.moneyIcon,
                iconColor: ColorManager.pink,
                countText: "10",
                countTextColor: ColorManager.primary,
              ),
              SizedBox(
                width: AppMargin.m8,
              ),
              WidgetHead(
                text: "Total",
                icon: Assets.totalIcon,
                iconColor: ColorManager.softGreen,
                countText: "Ro 1.200.000",
                countTextColor: ColorManager.green,
              ),
            ],
          ),
          SizedBox(
            height: AppMargin.m20,
          ),
          Expanded(
            child: ListView.builder(
              padding: EdgeInsets.zero,
              itemCount: 10,
              itemBuilder: (c, index) {
                return const ListTransaction(
                  date: "10 Maret 2023",
                  title: "AGR Surabaya",
                  subtitle: "Rp 520.000",
                );
              },
            ),
          ),
        ],
      ),
    );
  }
}

class WidgetHead extends StatelessWidget {
  const WidgetHead({
    super.key,
    required this.text,
    required this.icon,
    required this.countText,
    required this.iconColor,
    required this.countTextColor,
  });

  final String text;
  final String icon;
  final Color iconColor;
  final String countText;
  final Color countTextColor;
  @override
  Widget build(BuildContext context) {
    return Expanded(
      child: Container(
        width: double.infinity,
        height: 129,
        padding: EdgeInsets.all(AppPadding.p15),
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(
            12,
          ),
          color: ColorManager.backgroundColor,
          boxShadow: [
            BoxShadow(
              color: Colors.grey.withOpacity(0.3),
              blurRadius: 2,
              offset: const Offset(5, 5),
            ),
          ],
        ),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Row(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Container(
                  width: 32,
                  height: 32,
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(100),
                    color: iconColor,
                  ),
                  margin: EdgeInsets.only(
                    right: AppMargin.m8,
                  ),
                  child: Center(
                    child: Image(
                      width: 20,
                      height: 20,
                      image: AssetImage(
                        icon,
                      ),
                    ),
                  ),
                ),
                Text(
                  text,
                  style: getSemiBoldStyle(
                    color: Colors.black,
                    fontFamily: FontConstants.openSans,
                  ),
                )
              ],
            ),
            Row(
              children: [
                const Spacer(),
                Text(
                  countText,
                  style: getSemiBoldStyle(
                    color: countTextColor,
                    fontSize: 16,
                    fontFamily: FontConstants.openSans,
                  ),
                )
              ],
            )
          ],
        ),
      ),
    );
  }
}
