import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:penyaluran_app/app/theme/app_theme.dart'; class AboutView extends StatelessWidget { const AboutView({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Tentang Kami'), centerTitle: true, elevation: 0, ), body: SingleChildScrollView( child: Column( children: [ // Header dengan logo dan nama brand Container( width: double.infinity, decoration: BoxDecoration( gradient: AppTheme.primaryGradient, borderRadius: const BorderRadius.only( bottomLeft: Radius.circular(30), bottomRight: Radius.circular(30), ), ), padding: const EdgeInsets.fromLTRB(20, 20, 20, 40), child: Column( children: [ Container( width: 120, height: 120, decoration: BoxDecoration( color: Colors.white, shape: BoxShape.circle, ), child: Center( child: Image.asset( 'assets/images/logo-disalurkita.png', width: 100, height: 100, ), ), ), const SizedBox(height: 20), const Text( 'DisalurKita', style: TextStyle( fontSize: 28, fontWeight: FontWeight.bold, color: Colors.white, ), ), const SizedBox(height: 8), const Text( 'Salurkan dengan Pasti, Pantau dengan Bukti', style: TextStyle( fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500, ), ), const SizedBox(height: 20), _buildVersionInfo(), ], ), ), // Konten utama Padding( padding: const EdgeInsets.all(20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ _buildSection( icon: Icons.info_outline, title: 'Tentang DisalurKita', content: 'DisalurKita adalah platform penyaluran bantuan digital yang mengedepankan transparansi, akuntabilitas, dan kemudahan pengelolaan bantuan. Aplikasi ini memudahkan koordinasi antara petugas desa, donatur, dan warga dalam proses penyaluran bantuan sosial.', ), _buildSection( icon: Icons.visibility_outlined, title: 'Visi Kami', content: 'Menjadi platform terdepan dalam penyaluran bantuan sosial yang transparan, akuntabel, dan berdampak nyata bagi masyarakat Indonesia.', ), _buildSection( icon: Icons.location_on_outlined, title: 'Misi Kami', content: '• Memastikan setiap bantuan diterima oleh yang berhak\n• Meningkatkan transparansi dalam proses penyaluran\n• Memberikan kemudahan akses informasi bagi semua pihak\n• Membangun kepercayaan antara donatur dan penerima bantuan', ), _buildSection( icon: Icons.star_outline, title: 'Nilai-nilai Kami', content: '• Transparansi: Keterbukaan dalam setiap proses\n• Akuntabilitas: Pertanggungjawaban yang jelas\n• Inklusivitas: Melibatkan semua pihak\n• Efisiensi: Penyaluran bantuan tepat sasaran\n• Inovasi: Terus berinovasi untuk solusi terbaik', ), _buildSection( icon: Icons.people_outline, title: 'Tim Kami', content: 'DisalurKita dikembangkan oleh tim yang berdedikasi untuk menciptakan solusi inovatif dalam penyaluran bantuan sosial di Indonesia. Tim kami terdiri dari para profesional di bidang teknologi dan pengembangan sosial.', ), // Layanan _buildTeamSection(), // Hubungi Kami _buildContactSection(), ], ), ), ], ), ), ); } Widget _buildVersionInfo() { return Container( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), decoration: BoxDecoration( color: Colors.white.withOpacity(0.2), borderRadius: BorderRadius.circular(20), ), child: const Text( 'Versi 1.0.0', style: TextStyle( color: Colors.white, fontWeight: FontWeight.w500, ), ), ); } Widget _buildSection({ required IconData icon, required String title, required String content, }) { return Padding( padding: const EdgeInsets.only(bottom: 24), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: AppTheme.primaryColor.withOpacity(0.1), borderRadius: BorderRadius.circular(10), ), child: Icon( icon, color: AppTheme.primaryColor, size: 24, ), ), const SizedBox(width: 12), Text( title, style: const TextStyle( fontSize: 18, fontWeight: FontWeight.bold, color: AppTheme.primaryColor, ), ), ], ), const SizedBox(height: 12), Text( content, style: TextStyle( fontSize: 15, color: Colors.grey[700], height: 1.5, ), ), ], ), ); } Widget _buildTeamSection() { return Padding( padding: const EdgeInsets.only(bottom: 24), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: AppTheme.primaryColor.withOpacity(0.1), borderRadius: BorderRadius.circular(10), ), child: Icon( Icons.settings_outlined, color: AppTheme.primaryColor, size: 24, ), ), const SizedBox(width: 12), const Text( 'Layanan Kami', style: TextStyle( fontSize: 18, fontWeight: FontWeight.bold, color: AppTheme.primaryColor, ), ), ], ), const SizedBox(height: 16), // Layanan Grid GridView.count( crossAxisCount: 3, shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), crossAxisSpacing: 16, mainAxisSpacing: 16, childAspectRatio: 0.8, children: [ _buildServiceItem( icon: Icons.volunteer_activism_outlined, title: 'Penitipan Bantuan', ), _buildServiceItem( icon: Icons.inventory_2_outlined, title: 'Pengelolaan Stok', ), _buildServiceItem( icon: Icons.local_shipping_outlined, title: 'Penyaluran Bantuan', ), _buildServiceItem( icon: Icons.people_outline, title: 'Manajemen Penerima', ), _buildServiceItem( icon: Icons.assignment_outlined, title: 'Laporan Transparan', ), _buildServiceItem( icon: Icons.campaign_outlined, title: 'Pengaduan', ), ], ), ], ), ); } Widget _buildServiceItem({ required IconData icon, required String title, }) { return Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(12), boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.1), spreadRadius: 1, blurRadius: 5, offset: const Offset(0, 2), ), ], ), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Container( padding: const EdgeInsets.all(12), decoration: BoxDecoration( color: AppTheme.primaryColor.withOpacity(0.1), shape: BoxShape.circle, ), child: Icon( icon, color: AppTheme.primaryColor, size: 28, ), ), const SizedBox(height: 8), Padding( padding: const EdgeInsets.symmetric(horizontal: 8), child: Text( title, style: const TextStyle( fontSize: 12, fontWeight: FontWeight.w500, ), textAlign: TextAlign.center, maxLines: 2, overflow: TextOverflow.ellipsis, ), ), ], ), ); } Widget _buildContactSection() { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: AppTheme.primaryColor.withOpacity(0.1), borderRadius: BorderRadius.circular(10), ), child: Icon( Icons.contact_mail_outlined, color: AppTheme.primaryColor, size: 24, ), ), const SizedBox(width: 12), const Text( 'Hubungi Kami', style: TextStyle( fontSize: 18, fontWeight: FontWeight.bold, color: AppTheme.primaryColor, ), ), ], ), const SizedBox(height: 16), Container( width: double.infinity, padding: const EdgeInsets.all(16), decoration: BoxDecoration( gradient: LinearGradient( colors: [Colors.blue.shade50, Colors.white], begin: Alignment.topLeft, end: Alignment.bottomRight, ), borderRadius: BorderRadius.circular(16), boxShadow: [ BoxShadow( color: Colors.blue.withOpacity(0.1), spreadRadius: 1, blurRadius: 8, offset: const Offset(0, 2), ), ], ), child: Column( children: [ _buildContactItem( icon: Icons.email_outlined, title: 'Email', content: 'info@disalurkita.id', ), const Divider(height: 24), _buildContactItem( icon: Icons.phone_outlined, title: 'Telepon', content: '+62 8123 4567 890', ), const Divider(height: 24), _buildContactItem( icon: Icons.location_on_outlined, title: 'Alamat', content: 'Jl. Transparansi No. 123, Jakarta Pusat, Indonesia', ), ], ), ), const SizedBox(height: 20), // Footer Center( child: Text( '© ${DateTime.now().year} DisalurKita. Seluruh hak cipta dilindungi.', style: TextStyle( fontSize: 12, color: Colors.grey, ), textAlign: TextAlign.center, ), ), const SizedBox(height: 20), ], ); } Widget _buildContactItem({ required IconData icon, required String title, required String content, }) { return Row( children: [ Container( padding: const EdgeInsets.all(10), decoration: BoxDecoration( color: AppTheme.primaryColor.withOpacity(0.1), shape: BoxShape.circle, ), child: Icon( icon, color: AppTheme.primaryColor, size: 20, ), ), const SizedBox(width: 16), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( title, style: TextStyle( fontSize: 14, fontWeight: FontWeight.bold, color: Colors.grey[800], ), ), const SizedBox(height: 4), Text( content, style: TextStyle( fontSize: 14, color: Colors.grey[600], ), overflow: TextOverflow.ellipsis, maxLines: 2, ), ], ), ), ], ); } }