TIF_E41202429/Mobile/patrolin/skripsi/lib/view/login_page.dart

120 lines
4.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:skripsi/config/theme.dart';
import 'package:skripsi/controller/cLogin.dart';
import 'package:skripsi/view/home_page.dart';
import 'package:skripsi/view/register_page.dart';
import 'package:skripsi/widget/cust_button.dart';
import 'package:skripsi/widget/cust_text_field.dart';
import 'package:skripsi/widget/cust_text_field_psw.dart';
import 'package:skripsi/widget/dialog.dart';
class LoginPage extends StatefulWidget {
const LoginPage({super.key});
@override
State<LoginPage> createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
final cLogin = Get.put(CLogin());
final formKey = GlobalKey<FormState>();
TextEditingController usernameController = TextEditingController();
TextEditingController passwordController = TextEditingController();
login() async {
if (usernameController.text.isEmpty) {
Get.snackbar("Error", "Masukkan Username", backgroundColor: Colors.red);
} else if (passwordController.text.isEmpty) {
Get.snackbar("Error", "Masukkan Password", backgroundColor: Colors.red);
} else {
await cLogin.login(usernameController.text, passwordController.text);
if (cLogin.successLogin) {
Get.snackbar("Success", "Berhasil Login",
backgroundColor: Colors.green);
Get.off(const HomePage());
} else {
Get.snackbar("Error", "Username dan password salah!",
backgroundColor: Colors.red);
}
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: SingleChildScrollView(
child: Stack(children: [
Padding(
padding: EdgeInsets.only(left: 20.w, right: 20.w),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset('assets/icon2.png'),
CustTextField(
controller: usernameController,
hint: 'Masukkan Username',
),
SizedBox(
height: 20.h,
),
CustTextFieldPreffSuff(
controller: passwordController,
hint: 'Masukkan Password',
),
SizedBox(
height: 40.h,
),
CustButton(
onTap: () {
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) => const HomePage()));
login();
},
text: 'LOGIN',
backgroundColor: primaryColor,
width: 120.w,
height: 40.h),
SizedBox(height: 20.h),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Belum Memiliki Akun?',
style: robotoSedangHitam,
),
SizedBox(width: 8.w),
InkWell(
onTap: () {
Get.to(const RegisterPage());
},
child: Text(
'Mendaftar',
style: robotoSedangHitam.copyWith(
color: Colors.blue[400]),
),
),
],
),
],
),
),
Obx(() {
if (cLogin.loading) {
return showCustomLoadingDialog(context);
}
return const SizedBox.shrink();
}),
]),
),
),
);
}
}