cims_apps/lib/features/auth/login/view/login_view.dart

97 lines
3.3 KiB
Dart

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<LoginView> createState() => _LoginViewState();
}
class _LoginViewState extends State<LoginView> {
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());
}
}
}