import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_swipe/flutter_swipe.dart';
import 'package:unicons/unicons.dart';

import 'package:random/cubit/bottom_nav_cubit.dart';

class BottomNavBar extends StatelessWidget {
  const BottomNavBar({super.key, required this.swipeController});

  final SwiperController swipeController;

  @override
  Widget build(BuildContext context) {
    return Card(
      margin: const EdgeInsets.only(
        top: 1,
        right: 0,
        left: 0,
      ),
      elevation: 4,
      shadowColor: Theme.of(context).colorScheme.shadow,
      color: Theme.of(context).colorScheme.surfaceVariant,
      shape: const RoundedRectangleBorder(
        borderRadius: BorderRadius.only(
          topLeft: Radius.circular(16),
          topRight: Radius.circular(16),
        ),
      ),
      child: BlocBuilder<BottomNavCubit, int>(
        builder: (BuildContext context, int state) {
          return BottomNavigationBar(
            currentIndex: state,
            onTap: (int index) {
              context.read<BottomNavCubit>().updateIndex(index);
              swipeController.move(index);
            },
            type: BottomNavigationBarType.fixed,
            elevation: 0,
            backgroundColor: Colors.transparent,
            selectedItemColor: Theme.of(context).colorScheme.primary,
            unselectedItemColor: Theme.of(context).textTheme.bodySmall!.color,
            items: <BottomNavigationBarItem>[
              BottomNavigationBarItem(
                icon: const Icon(UniconsLine.image),
                label: tr('bottom_nav_sample'),
              ),
              BottomNavigationBarItem(
                icon: const Icon(UniconsLine.globe),
                label: tr('bottom_nav_api'),
              ),
              BottomNavigationBarItem(
                icon: const Icon(UniconsLine.pen),
                label: tr('bottom_nav_chart'),
              ),
              BottomNavigationBarItem(
                icon: const Icon(UniconsLine.star),
                label: tr('bottom_nav_game'),
              ),
              BottomNavigationBarItem(
                icon: const Icon(UniconsLine.setting),
                label: tr('bottom_nav_settings'),
              ),
              BottomNavigationBarItem(
                icon: const Icon(UniconsLine.info_circle),
                label: tr('bottom_nav_about'),
              ),
            ],
          );
        },
      ),
    );
  }
}