service 2-5-26-1

This commit is contained in:
Hamza-Ayed
2026-05-02 15:12:46 +03:00
parent c3f29f30c1
commit 255724418c
25 changed files with 1063 additions and 530 deletions

View File

@@ -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,
),
),
),
],
),
],
),
),
),
),
],
),
);
}