import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_assets.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/core/utils/utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';

class BottomNavigation extends StatelessWidget {
  final int currentIndex;
  final ValueChanged<int> onTap;

  const BottomNavigation({
    super.key,
    required this.currentIndex,
    required this.onTap,
  });

  @override
  Widget build(BuildContext context) {
    final items = [
      BottomNavItem(icon: AppAssets.homeBottom, label: LocaleKeys.home.tr()),
      BottomNavItem(icon: AppAssets.myFilesBottom, label: LocaleKeys.myFiles.tr()),
      BottomNavItem(
        icon: AppAssets.bookAppoBottom,
        label: LocaleKeys.appointment.tr(),
        iconSize: 27,
        isSpecial: true,
      ),
      BottomNavItem(icon: AppAssets.toDoBottom, label: LocaleKeys.todoList.tr()),
      BottomNavItem(icon: AppAssets.servicesBottom, label: LocaleKeys.services2.tr()),
    ];

    return Container(
      decoration: _containerDecoration,
      padding: _containerPadding,
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: List.generate(
          items.length,
              (index) => _buildNavItem(items[index], index),
        ),
      ),
    );
  }

  Widget _buildNavItem(BottomNavItem item, int index) {
    final bool isSelected = currentIndex == index;

    return GestureDetector(
      onTap: () => onTap(index),
      behavior: HitTestBehavior.opaque,
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
         Center(
              child: Utils.buildSvgWithAssets(
                icon: item.icon,
                height: item.iconSize.h,
                width: item.iconSize.h,
                 // iconColor:  isSelected ? Colors.black87 : Colors.black87,
              ),
            ),
          const SizedBox(height: 10),
          item.label.toText12(
            fontWeight:FontWeight.w500,
            // color:  Colors.black87,
            // textAlign: TextAlign.center,
          ),
        SizedBox(height:    item.isSpecial ? 5:0 )
        ],

      ),
    );
  }
}

class BottomNavItem {
  final String icon;
  final String label;
  final double iconSize;
  final bool isSpecial;

  const BottomNavItem({
    required this.icon,
    required this.label,
    this.iconSize = 21,
    this.isSpecial = false,
  });
}

// Constants
const EdgeInsets _containerPadding = EdgeInsets.all(15);
const BoxDecoration _containerDecoration = BoxDecoration(
  color: Colors.white,
  border: Border(
    top: BorderSide(
      color: AppColors.bottomNAVBorder,
      width: 0.5,
    ),
  ),
);
