import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:lottie/lottie.dart'; import '../controllers/onboarding_controller.dart'; class OnboardingView extends GetView { const OnboardingView({super.key}); @override Widget build(BuildContext context) { final isDark = Theme.of(context).brightness == Brightness.dark; return Scaffold( backgroundColor: isDark ? const Color(0xFF0F172A) : Colors.white, body: SafeArea( child: Column( children: [ Align( alignment: Alignment.centerLeft, child: Padding( padding: const EdgeInsets.all(16.0), child: TextButton( onPressed: () => controller.completeOnboarding(), child: Text( 'تخطي', style: TextStyle( color: isDark ? Colors.white54 : Colors.grey.shade600, fontWeight: FontWeight.bold, ), ), ), ), ), Expanded( child: PageView.builder( controller: PageController(), onPageChanged: controller.onPageChanged, itemCount: controller.items.length, itemBuilder: (context, index) { final item = controller.items[index]; return Padding( padding: const EdgeInsets.all(40.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox( height: 300, child: ClipRRect( borderRadius: BorderRadius.circular(24), child: Image.asset( item.imageAsset, fit: BoxFit.cover, errorBuilder: (context, error, stackTrace) => Icon( index == 0 ? Icons.rocket_launch : (index == 1 ? Icons.document_scanner : Icons.account_balance_wallet), size: 150, color: const Color(0xFF0F4C81), ), ), ), ), const SizedBox(height: 40), Text( item.title, style: TextStyle( fontSize: 28, fontWeight: FontWeight.w900, color: isDark ? Colors.white : const Color(0xFF0F172A), ), textAlign: TextAlign.center, ), const SizedBox(height: 20), Text( item.description, style: TextStyle( fontSize: 16, color: isDark ? Colors.white70 : Colors.grey.shade600, height: 1.5, ), textAlign: TextAlign.center, ), ], ), ); }, ), ), Padding( padding: const EdgeInsets.all(40.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Obx(() => Row( children: List.generate( controller.items.length, (index) => AnimatedContainer( duration: const Duration(milliseconds: 300), margin: const EdgeInsets.only(right: 8), height: 8, width: controller.currentPage.value == index ? 24 : 8, decoration: BoxDecoration( color: controller.currentPage.value == index ? const Color(0xFF0F4C81) : Colors.grey.withOpacity(0.3), borderRadius: BorderRadius.circular(4), ), ), ), )), Obx(() => ElevatedButton( onPressed: () { if (controller.currentPage.value == controller.items.length - 1) { controller.completeOnboarding(); } else { // PageView controller would be needed here for "Next" button // For simplicity, let's just make it "Start" on the last page } }, style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFF0F4C81), foregroundColor: Colors.white, padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), elevation: 0, ), child: Text( controller.currentPage.value == controller.items.length - 1 ? 'ابدأ الآن' : 'التالي', style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16), ), )), ], ), ), ], ), ), ); } }