Files
service_intaleq/lib/login_page.dart
2026-05-02 15:12:46 +03:00

173 lines
6.2 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.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 {
const LoginPage({super.key});
@override
Widget build(BuildContext context) {
final LoginController controller = Get.put(LoginController());
return Scaffold(
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,
),
),
),
],
),
],
),
),
),
),
],
),
);
}
}