cashumit/lib/widgets/thank_you_pantun.dart

96 lines
2.9 KiB
Dart

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,
),
],
),
),
);
}
}