import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

/// Widget untuk menampilkan pengaturan akun sumber dan destinasi
///
/// Widget ini menampilkan dua dropdown untuk memilih akun sumber dan tujuan.
class AccountSettingsWidget extends StatelessWidget {
  final String sourceAccount;
  final String destinationAccount;
  final VoidCallback onSelectSource;
  final VoidCallback onSelectDestination;

  const AccountSettingsWidget({
    super.key,
    required this.sourceAccount,
    required this.destinationAccount,
    required this.onSelectSource,
    required this.onSelectDestination,
  });

  @override
  Widget build(BuildContext context) {
    // Mencoba menggunakan Google Fonts Courier Prime, jika gagal gunakan font sistem
    TextStyle courierPrime;
    try {
      courierPrime = GoogleFonts.courierPrime(
        textStyle: const TextStyle(
          fontSize: 14,
          height: 1.2,
        ),
      );
    } catch (e) {
      // Fallback ke font sistem jika Google Fonts tidak tersedia
      courierPrime = const TextStyle(
        fontFamily: 'CourierPrime, Courier, monospace',
        fontSize: 14,
        height: 1.2,
      );
    }

    return Container(
      width: double.infinity,
      padding: const EdgeInsets.all(8.0),
      color: Colors.white,
      child: Row(
        children: [
          Expanded(
            child: Row(
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                Text(
                  'Dari:',
                  style: courierPrime.copyWith(fontWeight: FontWeight.bold),
                ),
                const SizedBox(width: 8),
                Expanded(
                  child: GestureDetector(
                    onTap: onSelectSource,
                    child: Container(
                      padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 6.0),
                      decoration: BoxDecoration(
                        border: Border.all(color: Colors.grey),
                        borderRadius: BorderRadius.circular(4.0),
                      ),
                      child: Row(
                        children: [
                          Expanded(
                            child: Text(
                              sourceAccount,
                              style: courierPrime,
                              overflow: TextOverflow.ellipsis,
                            ),
                          ),
                          const Icon(Icons.arrow_drop_down, size: 16),
                        ],
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
          const SizedBox(width: 16),
          Expanded(
            child: Row(
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                Text(
                  'Ke:',
                  style: courierPrime.copyWith(fontWeight: FontWeight.bold),
                ),
                const SizedBox(width: 8),
                Expanded(
                  child: GestureDetector(
                    onTap: onSelectDestination,
                    child: Container(
                      padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 6.0),
                      decoration: BoxDecoration(
                        border: Border.all(color: Colors.grey),
                        borderRadius: BorderRadius.circular(4.0),
                      ),
                      child: Row(
                        children: [
                          Expanded(
                            child: Text(
                              destinationAccount,
                              style: courierPrime,
                              overflow: TextOverflow.ellipsis,
                            ),
                          ),
                          const Icon(Icons.arrow_drop_down, size: 16),
                        ],
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}
