import 'package:delivery_tracker/auth/app_provider.dart';
import 'package:delivery_tracker/pages/component/registrationloader.dart';
import 'package:delivery_tracker/pages/views/modal/view_one_modal.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

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

  @override
  State<HomeView> createState() => _HomeViewState();
}

class _HomeViewState extends State<HomeView> {
  final controller = ScrollController();
  final happyHourcontroller = ScrollController();
  int selectedIndex = -1;
  int featureselectedIndex = -1;
  int happyhourselectedIndex = -1;

  @override
  Widget build(BuildContext context) {
    return Consumer<AppProvider>(
      builder: (context, state, child) {
        return SizedBox(
            width: MediaQuery.of(context).size.width,
            height: MediaQuery.of(context).size.height,
            child: Padding(
                padding: const EdgeInsets.all(10.0),
                child: SingleChildScrollView(
                    child: Container(
                        child: Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            mainAxisSize: MainAxisSize.min,
                            children: [
                      SizedBox(
                        height: 150,
                        child: Scrollbar(
                          thickness: 10,
                          thumbVisibility: false,
                          trackVisibility: false,
                          interactive: true,
                          controller: controller,
                          radius: const Radius.circular(15),
                          child: ListView.separated(
                            scrollDirection: Axis.horizontal,
                            controller: controller,
                            itemCount: state.vendorItems != null
                                ? state.vendorItems!.length
                                : 5,
                            padding: const EdgeInsets.all(12),
                            itemBuilder: (context, index) {
                              return buildCard(index, selectedIndex == index,
                                  state.vendorItems);
                            },
                            separatorBuilder:
                                (BuildContext context, int index) {
                              return const SizedBox(
                                width: 12,
                              );
                            },
                          ),
                        ),
                      ),
                    ])))));
      },
    );
  }

  Widget buildCard(int index, bool isSelected, vendorItems) {
    return MouseRegion(
      cursor: SystemMouseCursors.click,
      onEnter: (event) => setState(() {
        selectedIndex = index;
      }),
      onExit: (event) => setState(() {
        selectedIndex = -1;
      }),
      child: InkWell(
        onTap: () {
          setState(() {
            selectedIndex = index;
          });
          showDialog(
            context: context,
            builder: (BuildContext context) {
              // Return the dialog widget
              return EditListItemDialog(
                item: vendorItems![index],
              );
            },
          );
        },
        child: Container(
          width: 150,
          height: 150,
          decoration: BoxDecoration(
            color: isSelected ? Colors.blueAccent : Colors.grey.shade300,
            borderRadius: BorderRadius.circular(15),
          ),
          child: Center(
            child: vendorItems != null
                ? Text("${vendorItems![index].name}")
                : registrationloader(),
          ),
        ),
      ),
    );
  }
}