import 'package:comwell_key_app/themes/light_theme.dart';
import 'package:comwell_key_app/utils/l10n_utils.dart';
import 'package:flutter/material.dart';

class SendReceipt extends StatelessWidget {
  final void Function(bool) onSendReceiptChanged;
  final bool sendReceipt;
  final String userEmail;

  const SendReceipt({
    super.key,
    required this.onSendReceiptChanged,
    required this.sendReceipt,
    required this.userEmail,
  });

  @override
  Widget build(BuildContext context) {
    final theme = Theme.of(context);
    return Column(
      children: [
        Row(
          mainAxisSize: MainAxisSize.max,
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Expanded(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text(context.strings.payment_overview_send_receipt_title),
                  Text(
                    context.strings.payment_overview_send_receipt_subtitle(userEmail),
                    style: theme.textTheme.bodySmall?.copyWith(color: colorHeadlineText),
                  ),
                ],
              ),
            ),
            const SizedBox(width: 10),
            if (sendReceipt)
              Switch(
                value: sendReceipt,
                thumbColor: WidgetStateProperty.resolveWith((states) {
                  if (states.contains(WidgetState.selected)) {
                    return sandColor[80];
                  }
                  return Colors.white;
                }),
                trackColor: WidgetStateProperty.resolveWith((states) {
                  if (!states.contains(WidgetState.selected)) {
                    return Colors.grey[200];
                  }
                  return null;
                }),
                trackOutlineColor: const WidgetStatePropertyAll(Colors.white),
                onChanged: (value) {
                  onSendReceiptChanged(value);
                },
              ),
          ],
        ),
        const SizedBox(height: 20),
        Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Text(
              context.strings.payment_overview_send_comment_title,
              style: theme.textTheme.bodySmall,
            ),
            const SizedBox(height: 8),
            TextField(
              controller: TextEditingController(),
              onChanged: (value) {
                // TODO: Implement send receipt
              },
              maxLines: 5,
              minLines: 3,
              decoration: InputDecoration(
                hintText: context.strings.payment_overview_send_receipt_hint,
                hintStyle: theme.textTheme.headlineSmall?.copyWith(
                  color: colorTertiary,
                ),
                enabledBorder: OutlineInputBorder(
                  borderSide: const BorderSide(color: colorDivider),
                  borderRadius: BorderRadius.circular(8),
                ),
                focusedBorder: OutlineInputBorder(
                  borderSide: const BorderSide(color: colorDivider),
                  borderRadius: BorderRadius.circular(8),
                ),
                contentPadding: const EdgeInsets.symmetric(vertical: 20, horizontal: 12),
              ),
              style: theme.textTheme.headlineSmall,
            ),
          ],
        ),
      ],
    );
  }
}