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 createState() => _LoginPageState(); } class _LoginPageState extends State { final cLogin = Get.put(CLogin()); final formKey = GlobalKey(); 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(); }), ]), ), ), ); } }