import 'package:flutter/material.dart';

import 'package:pweb/widgets/sidebar/destinations.dart';

import 'package:pweb/generated/i18n/app_localizations.dart';


class UserProfileCard extends StatelessWidget {
  final ThemeData theme;
  final String? avatarUrl;
  final String? userName;
  final PayoutDestination selected;
  final void Function(PayoutDestination) onSelected;

  const UserProfileCard({
    super.key,
    required this.theme,
    required this.avatarUrl,
    required this.userName,
    required this.selected,
    required this.onSelected,
  });

  @override
  Widget build(BuildContext context) {
    final loc = AppLocalizations.of(context)!;
    bool isSelected = selected == PayoutDestination.settings; 
    final selectedBackground = theme.colorScheme.surfaceContainerHighest;
    final backgroundColor = isSelected
        ? selectedBackground
        : Colors.transparent;

    return Material(
      elevation: 4,
      borderRadius: BorderRadius.circular(14),
      color: theme.colorScheme.onSecondary,
      child: InkWell(
        borderRadius: BorderRadius.circular(14),
        onTap: () => onSelected(PayoutDestination.settings),
        child: Container(
          height: 80,
          width: 320,
          decoration: BoxDecoration(
            color: backgroundColor,
            borderRadius: BorderRadius.circular(14),
          ),
          padding: const EdgeInsets.only(top: 15.0, left: 30, right: 20, bottom: 15),
          child: Row(
            spacing: 5,
            children: [
              CircleAvatar(
                radius: 20,
                foregroundImage: avatarUrl != null ? NetworkImage(avatarUrl!) : null,
                child: avatarUrl == null ? const Icon(Icons.person, size: 28) : null,
              ),
              const SizedBox(width: 8),
              Flexible(
                child: Text(
                  userName ?? loc.userNamePlaceholder,
                  style: theme.textTheme.bodyLarge?.copyWith(
                    fontSize: 18,
                    fontWeight: FontWeight.w500,
                  ),
                  maxLines: 2,
                  overflow: TextOverflow.ellipsis,
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
