import 'package:flutter/material.dart';
import '../../core/theme/colors.dart';
import '../../core/utils/size_config.dart';

class MainTabBar extends StatefulWidget {
  const MainTabBar({
    required this.controller,
    required this.titles,
    this.onTap,
    super.key,
  });

  final TabController controller;
  final List<String> titles;
  final ValueChanged<int>? onTap;

  @override
  State<MainTabBar> createState() => _MainTabBarState();
}

class _MainTabBarState extends State<MainTabBar> {
  @override
  Widget build(BuildContext context) {
    return Container(
      width: double.infinity,
      height: 51.0.h(),
      margin: EdgeInsets.symmetric(horizontal: 24.0.w()),
      padding: EdgeInsets.symmetric(horizontal: 8.0.w(), vertical: 8.0.h()),
      decoration: BoxDecoration(
        color: AppColors.grey10,
        borderRadius: BorderRadius.circular(10),
      ),
      alignment: Alignment.center,
      child: TabBar(
        controller: widget.controller,
        onTap: widget.onTap,
        indicatorSize: TabBarIndicatorSize.tab,
        dividerColor: Colors.transparent,
        indicator: BoxDecoration(
          color: AppColors.primary0,
          borderRadius: BorderRadius.circular(10),
          boxShadow: [
            BoxShadow(
              color: Colors.black.withValues(alpha: 0.12),
              blurRadius: 4,
              offset: const Offset(0, 2),
            ),
          ],
        ),
        labelColor: AppColors.mainBlue,
        unselectedLabelColor: AppColors.grey60,
        labelStyle: TextStyle(fontSize: 16.0.sp(), fontWeight: FontWeight.w600),
        unselectedLabelStyle: TextStyle(
          fontSize: 16.0.sp(),
          fontWeight: FontWeight.w600,
        ),
        tabs: [
          Tab(text: widget.titles[0]),
          Tab(text: widget.titles[1]),
          Tab(text: widget.titles[2]),
        ],
      ),
    );
  }
}
