import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:sefer_driver/constant/box_name.dart'; import 'package:sefer_driver/main.dart'; import '../../models/model/onboarding_model.dart'; import '../../views/auth/captin/login_captin.dart'; abstract class OnBoardingController extends GetxController { void next(); void onPageChanged(int index); } class OnBoardingControllerImp extends OnBoardingController { late PageController pageController; int currentPage = 0; bool isLastPage = false; // لتغيير نص الزر أو سلوكه @override void next() { currentPage++; if (currentPage > onBoardingList.length - 1) { _completeOnBoarding(); } else { pageController.animateToPage( currentPage, duration: const Duration(milliseconds: 600), // مدة معتدلة curve: Curves.easeInOut, ); } } Future _completeOnBoarding() async { await box.write(BoxName.onBoarding, 'yes'); // استخدام transition ناعم لمنع الرمش Get.offAll(() => const LoginCaptin(), transition: Transition.fadeIn, duration: const Duration(milliseconds: 500)); } @override void onPageChanged(int index) { currentPage = index; isLastPage = index == onBoardingList.length - 1; update(); } @override void onInit() { pageController = PageController(); super.onInit(); } @override void onClose() { pageController.dispose(); super.onClose(); } }