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<StoreDisclaimer> createState() => _StoreDisclaimerState();
}

class _StoreDisclaimerState extends State<StoreDisclaimer> {
  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<void> _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,
        ),
      ),
    );
  }
}