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 createState() => _ThankYouPantunState(); } class _ThankYouPantunState extends State { 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 _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) { final courierPrime = GoogleFonts.courierPrime( textStyle: const TextStyle( 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, ), ], ), ), ); } }