import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:traderscircuit/Utils/Common/CommonBottomNavigation.dart';
import 'package:traderscircuit/Utils/Common/CommonTabBar.dart';
import 'package:traderscircuit/Utils/Common/MainController.dart';
import 'package:traderscircuit/Utils/Common/comonGlassmorphicContainer.dart';
import 'package:traderscircuit/Utils/Common/sized_box.dart';
import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
import 'package:traderscircuit/view/MainScreen/MainScreen.dart';
import 'package:traderscircuit/view/Sidemenu/Sidemenu.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';

class HomeScreen extends StatefulWidget {
  const HomeScreen({super.key});

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  GlobalKey<ScaffoldState> _scaffoldKey1 = GlobalKey<ScaffoldState>();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey1,
      backgroundColor: Colors.black,
      drawer: Container(child: SideMenu()),
      extendBody: true,
      appBar: AppBar(
        scrolledUnderElevation: 0.0,
        backgroundColor: Colors.black,
        elevation: 0,
        automaticallyImplyLeading: false,
        titleSpacing: 0,
        leading: InkWell(
          onTap: () {
            _scaffoldKey1.currentState?.openDrawer();
          },
          child: Center(
            child: Image.asset(
              'assets/images/png/menu.png',
              height: 15.h,
              width: 20.w,
            ),
          ),
        ),
        actions: [
          InkWell(
            onTap: () {
              Get.toNamed(RouteName.notification);
            },
            child: Padding(
                padding: EdgeInsets.only(right: 14.w),
                child: SvgPicture.asset('assets/images/svg/Group 1897.svg')),
          ),
        ],
      ),
      body: Stack(
        children: [
          CommonBlurLeft(),
          CommonBlurRight(),
          Stack(children: [
            Padding(
              padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
              child: ListView(
                physics: BouncingScrollPhysics(),
                children: [
                  sizedBoxHeight(20.h),
                  Text(
                    "Welcome Afrid",
                    style: TextStyle(
                        color: Colors.white,
                        fontSize: 24.sp,
                        fontFamily: 'Manrope',
                        fontWeight: FontWeight.w500),
                  ),
                  sizedBoxHeight(25.h),
                  SingleChildScrollView(
                    scrollDirection: Axis.horizontal,
                    child: Row(
                      children: [
                        commoncontainer(
                            width: 180.w,
                            text: 'NIFTY',
                            amount: '22,286.95',
                            rate: '+304.15 (+1.38%)'),
                        sizedBoxWidth(10.w),
                        commoncontainer(
                            width: 220.w,
                            text: 'BANKNIFTY',
                            amount: '22,286.95',
                            rate: '+896.10 (+1.94%)'),
                      ],
                    ),
                  ),
                  sizedBoxHeight(30.h),
                  Container(
                    width: double.infinity,
                    height: 1.h,
                    color: Color(0xFF3A3A3A),
                  ),
                  sizedBoxHeight(30.h),
                  text22W500('View our products'),
                  sizedBoxHeight(30.h),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      ProductWidget(text: 'Options', subtext: 'Recommendation'),
                      ProductWidget(
                          text: 'Multibagger', subtext: 'Recommendation')
                    ],
                  ),
                  sizedBoxHeight(15.h),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      ProductWidget(
                          text: 'Swing Trade', subtext: 'Recommendation'),
                      ProductWidget(
                          text: 'OP + MB + ST', subtext: 'Recommendation'),
                    ],
                  ),
                  sizedBoxHeight(25.h),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      SvgPicture.asset('assets/images/svg/Vector (2).svg'),
                      sizedBoxWidth(10.w),
                      text18W500('UNLOCK NOW!'),
                    ],
                  ),
                  sizedBoxHeight(25.h),
                  Container(
                    width: double.infinity,
                    height: 1.h,
                    color: Color(0xFF3A3A3A),
                  ),
                  sizedBoxHeight(25.h),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    crossAxisAlignment: CrossAxisAlignment.end,
                    children: [
                      text22W600('Explore The Unseen'),
                      GestureDetector(
                        onTap: () {
                          Get.toNamed(RouteName.exploreUnseen);
                        },
                        child: Container(
                          height: 35.h,
                          width: 105.w,
                          decoration: BoxDecoration(
                              color: Color(0xFF3A3A3A).withOpacity(0.6),
                              borderRadius: BorderRadius.circular(5.r),
                              border: Border.all(
                                color: Color(0xFF3A3A3A),
                              )),
                          child: Center(child: text16W500('View More')),
                        ),
                      ),
                    ],
                  ),
                  sizedBoxHeight(35.h),
                  DefaultTabController(
                    length: 2,
                    child: Column(
                      children: [
                        MyTabBar(),
                        SizedBox(
                          height: 700.h,
                          child: TabBarView(
                            children: [
                              ActiveCallsTab(),
                              ExitedCallsTab(),
                            ],
                          ),
                        ),
                      ],
                    ),
                  ),
                ],
              ),
            )
          ])
        ],
      ),
      bottomNavigationBar: bottomnavigationbar(mainController),
    );
  }
}

Widget ActiveCallsTab() {
  return Column(
    children: [
      sizedBoxHeight(30.h),
      cardcallWidget(
          text: 'Trident Ltd', amount: '₹ 453 - ₹234', pdfname: 'Download Pdf'),
      sizedBoxHeight(30.h),
      Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          text22W600('Content Bytes'),
          sizedBoxHeight(8.w),
          SingleChildScrollView(
            scrollDirection: Axis.horizontal,
            child: Row(
              mainAxisAlignment: MainAxisAlignment.end,
              children: [
                text16W400_DADADA('The Beauty and Power of Video'),
                sizedBoxWidth(10.w),
                Container(
                  height: 35.h,
                  width: 105.w,
                  decoration: BoxDecoration(
                      color: Color(0xFF3A3A3A).withOpacity(0.6),
                      borderRadius: BorderRadius.circular(5.r),
                      border: Border.all(
                        color: Color(0xFF3A3A3A),
                      )),
                  child: Center(child: text16W500('View More')),
                ),
              ],
            ),
          ),
          sizedBoxHeight(20.h),
          commonGlassContainer(
              borderradius: 8,
              width: double.infinity,
              height: 300.h,
              customWidget: Padding(
                padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 10.w),
                child: Column(
                  children: [
                    Container(
                      height: 200.h,
                      width: double.infinity,
                      decoration: BoxDecoration(
                          borderRadius: BorderRadius.circular(8.r),
                          image: DecorationImage(
                              image: AssetImage(
                                  'assets/images/png/Rectangle 17934.png'))),
                      child: Center(
                        child: SvgPicture.asset(
                          'assets/images/svg/gridicons_play.svg',
                          height: 56.h,
                          width: 56.w,
                        ),
                      ),
                    ),
                    sizedBoxHeight(20.h),
                    Row(
                      children: [
                        CircleAvatar(
                          radius: 23.r,
                          backgroundImage:
                              AssetImage('assets/images/png/Ellipse 1494.png'),
                        ),
                        sizedBoxWidth(10.w),
                        Column(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: [
                            text18W500('Week of 21st February 2024'),
                            // sizedBoxHeight(10.h),
                            text12W400_979797('20k views . 2 days ago'),
                          ],
                        )
                      ],
                    )
                  ],
                ),
              ))
        ],
      ),
    ],
  );
}

Widget ExitedCallsTab() {
  List<Map<String, String>> cardcall = [
    {
      'text': 'Trident Ltd',
      'amount': '₹ 453 - ₹234',
      'pdfname': 'Download Pdf',
    },
    {
      'text': 'Trident Ltd',
      'amount': '₹ 453 - ₹234',
      'pdfname': 'Download Pdf',
    },
    {
      'text': 'Trident Ltd',
      'amount': '₹ 453 - ₹234',
      'pdfname': 'Download Pdf',
    },
  ];

  return SingleChildScrollView(
    child: Column(
      children: [
        sizedBoxHeight(30.h),
        Column(
          children: List.generate(cardcall.length, (index) {
            return Column(
              children: [
                cardcallWidget(
                    text: cardcall[index]['text']!,
                    amount: cardcall[index]['amount']!,
                    pdfname: cardcall[index]['pdfname']!),
                sizedBoxHeight(20.h)
              ],
            );
          }),
        ),
      ],
    ),
  );
}

Widget cardcallWidget(
    {required String text, required String amount, required String pdfname}) {
  return commonGlassContainer(
    width: double.infinity,
    height: 176.h,
    borderradius: 8,
    customWidget: Column(
      children: [
        Padding(
          padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w),
          child: Row(
            children: [
              GlassmorphicContainer(
                width: 47.w,
                height: 47.h,
                borderRadius: 100,
                blur: 10,
                alignment: Alignment.center,
                border: 0.9,
                linearGradient: LinearGradient(
                  begin: Alignment.topLeft,
                  end: Alignment.bottomRight,
                  colors: [
                    Color(0xff3A3A3A),
                    Color(0xFF3A3A3A),
                  ],
                ),
                borderGradient: LinearGradient(
                  begin: Alignment.topLeft,
                  end: Alignment.bottomRight,
                  colors: [
                    Color.fromRGBO(70, 5, 1, 0.8),
                    Color.fromRGBO(102, 102, 102, 0.8),
                  ],
                ),
                child: Center(
                  child:
                      Image.asset('assets/images/png/square_TRIDENT_com 1.png'),
                ),
              ),
              sizedBoxWidth(15.w),
              text18W600(text),
              Spacer(),
              Container(
                width: 62.w,
                height: 25.h,
                decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(4.r),
                  color: Color(0xFFFFAD31),
                ),
                child: Center(child: text16W400_1B1B1B('Hold')),
              )
            ],
          ),
        ),
        Container(
          width: double.infinity,
          height: 1.h,
          color: Color(0xFF3A3A3A),
        ),
        Padding(
          padding: const EdgeInsets.all(20),
          child: Row(
            children: [
              Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  text14W400_979797('Initial Entry Price'),
                  sizedBoxHeight(5.h),
                  text15W600(amount)
                ],
              ),
              sizedBoxWidth(50.w),
              Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  text14W400_979797('Report'),
                  sizedBoxHeight(5.h),
                  Row(
                    children: [
                      // SvgPicture.asset('assets/images/svg/pdfsvg.svg'),
                      Image.asset(
                        'assets/images/png/pdf.png',
                        height: 20.h,
                        width: 20.w,
                      ),
                      text15W600(pdfname),
                    ],
                  )
                ],
              )
            ],
          ),
        )
      ],
    ),
  );
}

Widget ProductWidget({required String text, required String subtext}) {
  return GlassmorphicContainer(
    width: 175.w,
    height: 83.h,
    borderRadius: 8,
    blur: 10,
    alignment: Alignment.center,
    border: 0.8,
    linearGradient: LinearGradient(
        begin: Alignment.topLeft,
        end: Alignment.bottomRight,
        colors: [
          Colors.white.withOpacity(0.1),
          Color(0xFFFFFFFF).withOpacity(0.05),
        ],
        stops: [
          0.1,
          1,
        ]),
    borderGradient: LinearGradient(
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
      colors: [
        Color(0xff3A3A3A),
        Color(0xFF3A3A3A),
      ],
    ),
    child: Padding(
      padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 10.w),
      child: Column(
        // crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          text18W600(text),
          sizedBoxWidth(8.w),
          text14W400_979797(subtext),
        ],
      ),
    ),
  );
}

Widget commoncontainer(
    {required String text,
    required String amount,
    required String rate,
    required double width}) {
  return GlassmorphicContainer(
    width: width,
    height: 83.h,
    borderRadius: 8,
    blur: 10,
    alignment: Alignment.center,
    border: 0.8,
    linearGradient: LinearGradient(
        begin: Alignment.topLeft,
        end: Alignment.bottomRight,
        colors: [
          Colors.white.withOpacity(0.1),
          Color(0xFFFFFFFF).withOpacity(0.05),
        ],
        stops: [
          0.1,
          1,
        ]),
    borderGradient: LinearGradient(
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
      colors: [
        Color(0xff3A3A3A),
        Color(0xFF3A3A3A),
      ],
    ),
    child: Padding(
      padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 10.w),
      child: Column(
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              text14W400_979797(text),
              sizedBoxWidth(8.w),
              text16W600(amount),
              sizedBoxWidth(8.w),
              SvgPicture.asset(
                'assets/images/svg/Line 587.svg',
                height: 15.h,
                width: 15.w,
              ),
            ],
          ),
          sizedBoxHeight(8.w),
          text14W400_00FF19(rate)
        ],
      ),
    ),
  );
}
