import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:qadirneyriz/config/config.dart'; import 'package:qadirneyriz/global/global_state/global_state.dart'; import 'package:qadirneyriz/setting/setting.dart'; import 'package:qadirneyriz/utils/enums/status.dart'; import 'package:qadirneyriz/widgets/custom_appbar.dart'; import 'package:qadirneyriz/widgets/custom_netimage.dart'; class AboutUsScreen extends StatefulWidget { const AboutUsScreen({super.key}); @override State createState() => _AboutUsScreenState(); } class _AboutUsScreenState extends State { // تابع کمکی برای گرفتن مقدار کلید از داده‌ها String _getByKey(GlobalState globalState, String key) { if (globalState.logoImagesStatus == Status.ready) { return globalState.logoImagesModel?.data ?.firstWhere((element) => element.key == key) .value ?? ''; } return ''; } // تابع کمکی برای ساخت URL String _buildImageUrl(String imagePath) { return '${config.network.imageUrl}$imagePath'; } @override Widget build(BuildContext context) { return Consumer( builder: (context, globalState, child) { // گرفتن مقادیر مربوطه final String textAboutUsFarsi = _getByKey(globalState, 'about_us_description_fa'); final String textAboutUsEn = _getByKey(globalState, 'about_us_description_en'); final String textAppVersrionFa = _getByKey(globalState, 'app_version_fa'); final String textAppVersrionEn = _getByKey(globalState, 'app_version_en'); final String aboutUsImage = _getByKey(globalState, 'about_us_image'); final String logoImage = _getByKey(globalState, 'logo'); final String aboutUsImageUrl = _buildImageUrl(aboutUsImage); final String logoUrl = _buildImageUrl(logoImage); // ساخت ویو بر اساس وضعیت switch (globalState.logoImagesStatus) { case Status.ready: return CustomScrollView( slivers: [ const CustomAppbar(), SliverToBoxAdapter( child: Column( children: [ _buildImageSection(aboutUsImageUrl, 300, 300), _buildAboutUsText( context, textAboutUsFarsi, textAboutUsEn), _buildFooter( logoUrl, textAppVersrionEn, textAppVersrionFa), ], ), ), ], ); default: return const Center(child: CircularProgressIndicator()); } }, ); } // ویجت برای بخش تصویر Widget _buildImageSection(String imageUrl, double width, double height) { return Padding( padding: const EdgeInsets.symmetric(vertical: 50), child: CustomImage( image: imageUrl, logo: true, width: width, height: height, boxFit: BoxFit.contain, ), ); } // ویجت برای متن درباره ما Widget _buildAboutUsText(BuildContext context, String textFa, textEn) { final String lang = setting.userLocalDb.getUser().language; return Padding( padding: const EdgeInsets.symmetric(horizontal: 20), child: Text( lang == 'en' ? textEn : textFa, textAlign: TextAlign.justify, ), ); } // ویجت برای بخش فوتر (لوگو و نسخه اپلیکیشن) Widget _buildFooter( String logoUrl, String textVersionEn, String textVersionFa) { final String lang = setting.userLocalDb.getUser().language; return Column( children: [ Padding( padding: const EdgeInsets.symmetric(vertical: 10), child: CustomImage( image: logoUrl, logo: true, width: 80, height: 80, boxFit: BoxFit.contain, ), ), const SizedBox(height: 8), Text( lang == 'en' ? textVersionEn : textVersionFa, style: TextStyle(fontSize: 12), ), const SizedBox(height: 10), ], ); } }