import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:shared_preferences/shared_preferences.dart'; /// Widget untuk menampilkan disclaimer toko class StoreDisclaimer extends StatefulWidget { final VoidCallback? onTap; // Tambahkan callback onTap const StoreDisclaimer({super.key, this.onTap}); @override State createState() => _StoreDisclaimerState(); } class _StoreDisclaimerState extends State { String _disclaimerText = 'Barang yang sudah dibeli tidak dapat dikembalikan/ditukar. ' 'Harap periksa kembali struk belanja Anda sebelum meninggalkan toko.'; @override void initState() { super.initState(); _loadDisclaimerText(); } @override void didUpdateWidget(covariant StoreDisclaimer oldWidget) { super.didUpdateWidget(oldWidget); // Memuat ulang teks ketika widget diupdate _loadDisclaimerText(); } /// Memuat teks disclaimer dari shared preferences Future _loadDisclaimerText() async { final prefs = await SharedPreferences.getInstance(); final savedText = prefs.getString('store_disclaimer_text'); if (mounted && savedText != null) { setState(() { _disclaimerText = savedText; }); } } @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: Text( _disclaimerText, style: courierPrime, textAlign: TextAlign.center, ), ), ); } }