import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:hmg_patient_app_new/core/app_assets.dart'; import 'package:hmg_patient_app_new/core/utils/utils.dart'; import 'package:hmg_patient_app_new/extensions/string_extensions.dart'; import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; import 'package:hmg_patient_app_new/theme/colors.dart'; import 'package:hmg_patient_app_new/widgets/appbar/app_bar_widget.dart'; import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart'; import 'package:hmg_patient_app_new/widgets/input_widget.dart'; import 'package:sizer/sizer.dart'; // Import sizer class LoginScreen extends StatefulWidget { @override _LoginScreen createState() => _LoginScreen(); } class _LoginScreen extends State { @override void initState() { super.initState(); } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { return Sizer(// Wrap with Sizer builder: (context, orientation, deviceType) { return Scaffold( backgroundColor: AppColors.bgScaffoldColor, appBar: CustomAppBar( onBackPressed: () { }, onLanguageChanged: (String value) { print(value); context.setLocale(value == 'en' ? Locale('ar', 'SA') : Locale('en', 'US')); }, ), body: GestureDetector( onTap: () { FocusScope.of(context).unfocus(); // Dismiss the keyboard when tapping outside }, child: SingleChildScrollView( child: Padding( padding: EdgeInsets.only(left: 6.w, right: 6.w), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ Utils.showLottie(context: context, assetPath: AppAnimations.login, width: 45.w, height: 22.h, repeat: true, fit: BoxFit.cover), SizedBox(height: 19.h), // Adjusted to sizer unit LocaleKeys.welcomeToDrSulaiman.tr().toText22(isBold: true, color: AppColors.textColor), // Text( // LocaleKeys.welcomeToDrSulaiman.tr(), // style: context.dynamicTextStyle( // fontSize: 22, // fontWeight: FontWeight.w600, // color: AppColors.textColor, // letterSpacing: -0.4, // height: 40 / 28, // ), // ), SizedBox(height: 4.h), // Adjusted to sizer unit (approx 32px) TextInputWidget( labelText: "${LocaleKeys.nationalId.tr()} / ${LocaleKeys.fileNo.tr()}", hintText: "xxxxxxxxx", controller: TextEditingController(), keyboardType: TextInputType.number, isEnable: true, prefix: null, autoFocus: true, isBorderAllowed: false, isAllowLeadingIcon: true, padding: EdgeInsets.symmetric(vertical: 1.h, horizontal: 2.w), leadingIcon: AppAssets.student_card, errorMessage: "Please enter a valid national ID or file number", hasError: true, ), SizedBox(height: 2.h), // Adjusted to sizer unit (approx 16px) CustomButton( text: LocaleKeys.login.tr(), icon: AppAssets.login1, iconColor: Colors.white, onPressed: () {}, ), SizedBox(height: 1.8.h), // Adjusted to sizer unit (approx 14px) Center( child: RichText( textAlign: TextAlign.center, text: TextSpan( style: context.dynamicTextStyle( color: Colors.black, fontSize: 14.sp, // Adjusted to sizer unit height: 26 / 16, // This height is a ratio, may need re-evaluation fontWeight: FontWeight.w500, ), children: [ TextSpan(text: LocaleKeys.dontHaveAccount.tr(), style: context.dynamicTextStyle()), TextSpan(text: " "), TextSpan( text: LocaleKeys.registernow.tr(), style: context.dynamicTextStyle( color: AppColors.primaryRedColor, fontSize: 14.sp, // Adjusted to sizer unit height: 26 / 16, // Ratio fontWeight: FontWeight.w500, ), recognizer: TapGestureRecognizer()..onTap = () {}, ), ], ), ).withVerticalPadding(2.h), // Adjusted to sizer unit ), ], ), ), ), ), ); }); } }