import 'package:comwell_key_app/overview/models/guest.dart';
import 'package:comwell_key_app/themes/light_theme.dart';
import 'package:comwell_key_app/utils/share_button_utils.dart';
import 'package:flutter/material.dart';

class GuestListCirclesWidget extends StatelessWidget {
  final Iterable<Guest> guests;
  final double userButtonSize;
  final double userButtonOverlap;
  final VoidCallback onTap;

  const GuestListCirclesWidget({
    super.key,
    required this.guests,
    required this.userButtonSize,
    required this.userButtonOverlap,
    required this.onTap,
  });

  @override
  Widget build(BuildContext context) {
    final numberOfUsers = guests.length;
    final allInitials = generateInitials(guests).toList();

    return GestureDetector(
      behavior: HitTestBehavior.opaque,
      onTap: onTap,
      child: SizedBox(
        width: numberOfUsers * (userButtonSize - userButtonOverlap) + userButtonOverlap,
        height: userButtonSize,
        child: Stack(
          children: List.generate(
            numberOfUsers,
            (index) => Positioned(
              left: (numberOfUsers - 1 - index) * (userButtonSize - userButtonOverlap),
              child: Container(
                width: userButtonSize,
                height: userButtonSize,
                decoration: BoxDecoration(
                  color: index % 2 == 0 ? sandColor : colorTertiary,
                  shape: BoxShape.circle,
                ),
                child: Center(
                  child: Text(
                    allInitials.elementAt(index),
                    style: const TextStyle(
                      color: colorBackground,
                      fontWeight: FontWeight.w400,
                      fontSize: 18,
                    ),
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }
}