97 lines
3.3 KiB
Dart
97 lines
3.3 KiB
Dart
import 'package:cims_apps/application/assets/path_assets.dart';
|
|
import 'package:cims_apps/application/component/button/back_button_view.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/submission_data/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: [
|
|
BackButtonView(),
|
|
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: BottomNavigationView());
|
|
}
|
|
}
|
|
}
|