import 'package:cims_apps/application/assets/path_assets.dart'; import 'package:cims_apps/application/component/button/button_back.dart'; import 'package:cims_apps/application/component/button/button_view.dart'; import 'package:cims_apps/application/component/image/image_view.dart'; import 'package:cims_apps/application/component/text_form/text_form_view.dart'; import 'package:cims_apps/application/component/text_title/text_title.dart'; import 'package:cims_apps/application/theme/color_palette.dart'; import 'package:cims_apps/core/route/route.dart'; import 'package:cims_apps/core/utils/size_config.dart'; import 'package:cims_apps/features/auth/login/view/password_view.dart'; import 'package:cims_apps/features/auth/login/view/phone_number_view.dart'; import 'package:cims_apps/features/auth/login/view_model/login_view_model.dart'; import 'package:cims_apps/features/auth/registration/view/risk_profile/risk_profile_view.dart'; import 'package:cims_apps/features/bottom_navigation_view.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; class LoginView extends StatefulWidget { const LoginView({super.key}); @override State createState() => _LoginViewState(); } class _LoginViewState extends State { int currentPage = 0; PageController pageController = PageController(initialPage: 0); TextEditingController phoneNumberController = TextEditingController(); TextEditingController passwordController = TextEditingController(); @override void dispose() { // TODO: implement dispose pageController.dispose(); phoneNumberController.dispose(); passwordController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (context) => LoginViewModel(), child: WillPopScope( onWillPop: () async { if(currentPage == 1){ currentPage--; pageController.jumpToPage(0); return false; } return true; }, child: Scaffold( backgroundColor: Colors.white, appBar: AppBar( toolbarHeight: 70, backgroundColor: Colors.white, surfaceTintColor: Colors.white, automaticallyImplyLeading: false, title: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ ButtonBack(), const Text('Sign In'), SizedBox( width: SizeConfig.width * 0.1, ) ], ), shape: const RoundedRectangleBorder( side: BorderSide(color: ColorPalette.slate200) ), ), body: PageView( physics: NeverScrollableScrollPhysics(), controller: pageController, children: [ PhoneNumberView(nextStep: nextStep, controller: phoneNumberController), PasswordView(nextStep: nextStep, controller: passwordController) ], ), ), ), ); } void nextStep() { if(pageController.page == 0){ currentPage++; pageController.jumpToPage(1); }else{ routePush(context, page: RiskProfileView()); } } }