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

/// Widget untuk menampilkan ucapan terima kasih dan pantun
class ThankYouPantun extends StatefulWidget {
  final VoidCallback? onTap; // Tambahkan callback onTap

  const ThankYouPantun({super.key, this.onTap});

  @override
  State<ThankYouPantun> createState() => _ThankYouPantunState();
}

class _ThankYouPantunState extends State<ThankYouPantun> {
  String _thankYouText = '*** TERIMA KASIH ***';
  String _pantunText = 'Belanja di toko kami, hemat dan nyaman,\\n'
      'Dengan penuh semangat, kami siap melayani,\\n'
      'Harapan kami, Anda selalu puas,\\n'
      'Sampai jumpa lagi, selamat tinggal.';

  @override
  void initState() {
    super.initState();
    _loadThankYouText();
  }

  @override
  void didUpdateWidget(covariant ThankYouPantun oldWidget) {
    super.didUpdateWidget(oldWidget);
    // Memuat ulang teks ketika widget diupdate
    _loadThankYouText();
  }

  /// Memuat teks terima kasih dan pantun dari shared preferences
  Future<void> _loadThankYouText() async {
    final prefs = await SharedPreferences.getInstance();
    final savedThankYou = prefs.getString('thank_you_text');
    final savedPantun = prefs.getString('pantun_text');
    
    if (mounted) {
      setState(() {
        _thankYouText = savedThankYou ?? '*** TERIMA KASIH ***';
        _pantunText = savedPantun ?? 'Belanja di toko kami, hemat dan nyaman,\\n'
            'Dengan penuh semangat, kami siap melayani,\\n'
            'Harapan kami, Anda selalu puas,\\n'
            'Sampai jumpa lagi, selamat tinggal.';
      });
    }
  }

  @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: 12,
          height: 1.2,
        ),
      );
    } catch (e) {
      // Fallback ke font sistem jika Google Fonts tidak tersedia
      courierPrime = const TextStyle(
        fontFamily: 'CourierPrime, Courier, monospace',
        fontSize: 12,
        height: 1.2,
      );
    }

    return GestureDetector(
      onTap: widget.onTap, // Gunakan callback onTap dari widget
      child: Container(
        width: double.infinity,
        padding: const EdgeInsets.all(8.0),
        color: Colors.white,
        child: Column(
          children: [
            Text(
              _thankYouText,
              style: courierPrime.copyWith(fontWeight: FontWeight.bold),
              textAlign: TextAlign.center,
            ),
            const SizedBox(height: 4),
            Text(
              _pantunText,
              style: courierPrime,
              textAlign: TextAlign.center,
            ),
          ],
        ),
      ),
    );
  }
}