service 2-5-26-1
This commit is contained in:
@@ -1,50 +1,171 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:service/main.dart';
|
||||
import 'package:service/constant/colors.dart';
|
||||
import 'package:service/views/auth/register_page.dart';
|
||||
import 'package:service/views/widgets/my_textField.dart';
|
||||
import 'controller/login_controller.dart';
|
||||
|
||||
class LoginPage extends StatelessWidget {
|
||||
final LoginController controller = Get.put(LoginController());
|
||||
const LoginPage({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final LoginController controller = Get.put(LoginController());
|
||||
|
||||
return Scaffold(
|
||||
appBar: const CupertinoNavigationBar(
|
||||
middle: Text('Login'),
|
||||
),
|
||||
body: SafeArea(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Form(
|
||||
key: controller.formKey,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
const SizedBox(height: 20),
|
||||
MyTextForm(
|
||||
controller: controller.email,
|
||||
label: 'email',
|
||||
hint: 'email',
|
||||
type: TextInputType.emailAddress),
|
||||
const SizedBox(height: 20),
|
||||
MyTextForm(
|
||||
controller: controller.password,
|
||||
label: 'Password',
|
||||
hint: 'Password',
|
||||
type: TextInputType.name),
|
||||
const SizedBox(height: 40),
|
||||
CupertinoButton.filled(
|
||||
child: const Text('Login'),
|
||||
onPressed: () {
|
||||
controller.login();
|
||||
},
|
||||
backgroundColor: Colors.white,
|
||||
body: Stack(
|
||||
children: [
|
||||
// Background Gradient Element
|
||||
Positioned(
|
||||
top: -100,
|
||||
right: -100,
|
||||
child: Container(
|
||||
width: 300,
|
||||
height: 300,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
gradient: LinearGradient(
|
||||
colors: [AppColor.blueColor.withOpacity(0.2), Colors.transparent],
|
||||
begin: Alignment.topRight,
|
||||
end: Alignment.bottomLeft,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
SafeArea(
|
||||
child: SingleChildScrollView(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 30.0),
|
||||
child: Form(
|
||||
key: controller.formKey,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
const SizedBox(height: 80),
|
||||
// App Logo or Icon
|
||||
const Center(
|
||||
child: Icon(
|
||||
Icons.support_agent_rounded,
|
||||
size: 100,
|
||||
color: AppColor.blueColor,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
const Center(
|
||||
child: Text(
|
||||
'انطلق سيرفس',
|
||||
style: TextStyle(
|
||||
fontSize: 28,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.black87,
|
||||
letterSpacing: 1.2,
|
||||
),
|
||||
),
|
||||
),
|
||||
const Center(
|
||||
child: Text(
|
||||
'نظام خدمة العملاء المتكامل',
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: Colors.grey,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 60),
|
||||
|
||||
// Fields with modern styling
|
||||
const Text(
|
||||
'تسجيل الدخول',
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Colors.black87,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
|
||||
MyTextForm(
|
||||
controller: controller.email,
|
||||
label: 'البريد الإلكتروني',
|
||||
hint: 'أدخل البريد الإلكتروني',
|
||||
type: TextInputType.emailAddress,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
|
||||
MyTextForm(
|
||||
controller: controller.password,
|
||||
label: 'كلمة المرور',
|
||||
hint: 'أدخل كلمة المرور',
|
||||
type: TextInputType.visiblePassword,
|
||||
),
|
||||
|
||||
const SizedBox(height: 40),
|
||||
|
||||
// Login Button
|
||||
Container(
|
||||
height: 55,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
gradient: const LinearGradient(
|
||||
colors: [AppColor.blueColor, Color(0xFF1A237E)],
|
||||
),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: AppColor.blueColor.withOpacity(0.3),
|
||||
blurRadius: 12,
|
||||
offset: const Offset(0, 6),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Material(
|
||||
color: Colors.transparent,
|
||||
child: InkWell(
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
onTap: () => controller.login(),
|
||||
child: const Center(
|
||||
child: Text(
|
||||
'دخول',
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
const SizedBox(height: 30),
|
||||
|
||||
// Register Link
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
const Text(
|
||||
'ليس لديك حساب موظف؟ ',
|
||||
style: TextStyle(color: Colors.grey),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () => Get.to(() => const RegisterPage()),
|
||||
child: const Text(
|
||||
'إنشاء حساب جديد',
|
||||
style: TextStyle(
|
||||
color: AppColor.blueColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user