import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:package_info_plus/package_info_plus.dart'; import '../config/custom_text.dart'; import '../config/language/language_enum.dart'; import '../models/AboutUsItem_model.dart'; import '../providers/AboutUsProvider.dart'; import '../providers/language_provider.dart'; import '../utils/colors.dart'; import '../widgets/TermsCard.dart'; class About extends StatefulWidget { final bool? withBack; const About({super.key, this.withBack}); @override State createState() => _AboutState(); } class _AboutState extends State { String _version = ''; String _buildNumber = ''; @override void initState() { super.initState(); _loadVersionInfo(); WidgetsBinding.instance.addPostFrameCallback((_) { Provider.of(context, listen: false).loadAboutUs(); }); } Future _loadVersionInfo() async { final info = await PackageInfo.fromPlatform(); setState(() { _version = info.version; _buildNumber = info.buildNumber; }); } Future _refreshData() async { await Provider.of(context, listen: false).loadAboutUs(); } @override Widget build(BuildContext context) { final provider = Provider.of(context); final items = provider.items; final languageProvider = context.watch(); bool isArabic = languageProvider.currentLangCode == Language.ar; return Scaffold( backgroundColor: Colors.white, body: provider.isLoading ? const Center( child: CircularProgressIndicator(color: Colors.greenAccent)) : RefreshIndicator( onRefresh: _refreshData, child: Column( children: [ widget.withBack !=null && widget.withBack==true ?const SizedBox(height: 20):const SizedBox(height: 70), if(widget.withBack !=null && widget.withBack==true) Padding( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ GestureDetector( onTap: () { Navigator.pop(context); }, child: Container( width: 32, height: 32, margin: const EdgeInsets.symmetric(vertical: 12), decoration: BoxDecoration( color: AppNewColors.lightgray, borderRadius: BorderRadius.circular(16), boxShadow: [ BoxShadow( color: AppNewColors.black.withOpacity(.1), blurRadius: 1, offset: const Offset(2, 1), ), ], ), child: const Icon( Icons.arrow_back, color: AppNewColors.black, size: 16, ), ), ), Expanded( child: Center( child: Txt( text: 'About App', style: TextStyle( color: AppNewColors.titleTextColor, fontSize: 18, fontFamily: isArabic ? "Readex_Pro" : 'Inter', fontWeight: FontWeight.w600, height: 1.23, ), ), ), ), const SizedBox(width: 32), ], ), ), const Txt(text:'About',style: TextStyle( color: Colors.black, fontSize: 13, fontFamily: 'Inter', fontWeight: FontWeight.w600, height: 1.85, ), ), const SizedBox(height: 70), SvgPicture.asset( "assets/icons/wanislogoweb.svg", width: 80, color: AppNewColors.primaryBtnColor, ), Text( 'Version: $_version', style: const TextStyle(color: Colors.grey), ), Expanded( child: ListView.builder( physics: const BouncingScrollPhysics(), padding: const EdgeInsets.all(14), itemCount: items.length, // separatorBuilder: (_, __) => const Divider(), itemBuilder: (context, index) { return Padding( padding: const EdgeInsets.symmetric(vertical: 4.0), child: buildTermCard(items[index], index), ); /*ListTile( title: Text(item.title), subtitle: Text(item.disctiption), isThreeLine: true, );*/ }, ), ), ], ), ), ); } }