sds

sds
 avatar
unknown
dart
2 years ago
13 kB
4
Indexable
import 'package:delivery_agrement/constant/app_color.dart';
import 'package:delivery_agrement/constant/app_image.dart';
import 'package:delivery_agrement/constant/app_string.dart';
import 'package:delivery_agrement/constant/appstring_textstyle.dart';
import 'package:delivery_agrement/custom_widget/cus_profile_field.dart';
import 'package:delivery_agrement/custom_widget/custom_button.dart';
import 'package:delivery_agrement/custom_widget/text_widget.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

import '../custom_widget/custom_size_widget.dart';
import '../providers/signin_provider.dart';

class SignInScreen extends StatefulWidget {
  const SignInScreen({Key? key}) : super(key: key);

  @override
  State<SignInScreen> createState() => _SignInScreenState();
}

class _SignInScreenState extends State<SignInScreen> {
  int screenSize = 1;

  @override
  Widget build(BuildContext context) {
    screenSize = ReturnScreenType(context);
    double height = MediaQuery.of(context).size.height;
    double width = MediaQuery.of(context).size.width;
    return Consumer<SignInProvider>(
        builder: (context, SignInProvider signInProvider, child) {
      return SafeArea(
        child: Scaffold(
          resizeToAvoidBottomInset: false,
          body: Form(
            key: signInProvider.signInKey,
            child: (screenSize == 1)
                ? Container(
                    alignment: Alignment.center,
                    child: Padding(
                      padding: EdgeInsets.only(
                        left: width / 20,
                        right: width / 20,
                        bottom: height / 5,
                      ),
                      child: SingleChildScrollView(
                        child: Column(
                          mainAxisAlignment: MainAxisAlignment.center,
                          crossAxisAlignment: CrossAxisAlignment.center,
                          children: [
                            CustomText(
                              text: AppString.systemDeliveryAgrement,
                              textStyle: StringStyle.blcText5,
                            ),
                            Card(
                              shape: RoundedRectangleBorder(
                                borderRadius: BorderRadius.circular(10),
                              ),
                              elevation: 3,
                              child: ClipRRect(
                                borderRadius: BorderRadius.circular(10),
                                child: Container(
                                  height: height / 3,
                                  width: screenSize == 1
                                      ? width / 1.4
                                      : screenSize == 2
                                          ? width / 2
                                          : width / 4,
                                  decoration: const BoxDecoration(
                                    image: DecorationImage(
                                      filterQuality: FilterQuality.high,
                                      image: AssetImage(
                                        AppImage.signInImage,
                                      ),
                                      fit: BoxFit.fill,
                                    ),
                                  ),
                                ),
                              ),
                            ),
                            const Align(
                              alignment: Alignment.centerLeft,
                              child: Padding(
                                padding: EdgeInsets.only(bottom: 8.0),
                                child: CustomText(
                                  text: AppString.signIn,
                                ),
                              ),
                            ),
                            CusProfileField(
                              validator: (val) {
                                if (val!.isEmpty) {
                                  return 'Please Enter your UserName';
                                }
                                return null;
                              },
                              controller: signInProvider.userController,
                              width:
                                   width / 1.1,

                              hintText: AppString.username,
                              labelText: AppString.username,
                              icon: const Icon(Icons.person),
                            ),
                            CusProfileField(
                              validator: (val) {
                                if (val!.isEmpty) {
                                  return 'Please Enter your password';
                                }
                                return null;
                              },
                              controller: signInProvider.passwordController,
                              width:
                                   width / 1.1,
                              hintText: AppString.password,
                              labelText: AppString.password,
                              icon: const Icon(Icons.lock),
                            ),
                            Align(
                              alignment: Alignment.topRight,
                              child: RichText(
                                text: TextSpan(
                                  text: AppString.forgetPassword,
                                  style: StringStyle.pryText1,
                                  recognizer: TapGestureRecognizer()
                                    ..onTap = () {},
                                ),
                              ),
                            ),
                            CustomButton(
                              text: AppString.signIn,
                              onTap: () {
                                if (signInProvider
                                    .signInKey.currentState!
                                    .validate()) {
                                  signInProvider.login(context);
                                }
                                // if (signInProvider.signInKey.currentState!
                                //     .validate()) {
                                //   Navigator.pushNamed(context, '/');
                                // }
                              },
                              color: AppColor.primary,
                              width: width / 2.5,
                              height: height / 18,
                            ),
                          ],
                        ),
                      ),
                    ),
                  )
                : Center(
                    child: Column(
                      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                      children: [
                        CustomText(
                          text: AppString.systemDeliveryAgrement,
                          textStyle: StringStyle.blcText5,
                        ),
                        Card(
                          elevation: 3,
                          child: Container(
                            alignment: Alignment.center,
                            height: height / 1.8,
                            width: screenSize == 3 ? width / 1.5 : width / 1.2,
                            child: Row(
                              crossAxisAlignment: CrossAxisAlignment.center,
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: [
                                Expanded(
                                  child: Container(
                                    alignment: Alignment.center,
                                    decoration: const BoxDecoration(
                                      image: DecorationImage(
                                        filterQuality: FilterQuality.high,
                                        image: AssetImage(
                                          AppImage.signInImage,
                                        ),
                                        fit: BoxFit.fill,
                                      ),
                                    ),
                                  ),
                                ),
                                Expanded(
                                  child: Padding(
                                    padding: const EdgeInsets.all(8.0),
                                    child: Column(
                                      crossAxisAlignment:
                                          CrossAxisAlignment.center,
                                      mainAxisAlignment:
                                          MainAxisAlignment.center,
                                      children: [
                                        const CustomText(
                                          text: AppString.signIn,
                                        ),
                                        CusProfileField(
                                          validator: (val) {
                                            if (val!.isEmpty) {
                                              return 'Please Enter yor UserName';
                                            }
                                            return null;
                                          },
                                          containtWidget: Container(),
                                          controller:
                                              signInProvider.userController,
                                          hintText: AppString.username,
                                          labelText: AppString.username,
                                          icon: const Icon(Icons.person),
                                        ),
                                        CusProfileField(
                                          validator: (val) {
                                            if (val!.isEmpty) {
                                              return 'Please Enter yor password';
                                            }
                                            return null;
                                          },
                                          containtWidget: Container(),
                                          controller:
                                              signInProvider.passwordController,
                                          hintText: AppString.password,
                                          labelText: AppString.password,
                                          icon: const Icon(Icons.lock),
                                        ),
                                        Align(
                                          alignment: Alignment.topRight,
                                          child: RichText(
                                            text: TextSpan(
                                              text: AppString.forgetPassword,
                                              style: StringStyle.pryText1,
                                              recognizer: TapGestureRecognizer()
                                                ..onTap = () {},
                                            ),
                                          ),
                                        ),
                                        Padding(
                                          padding:
                                              const EdgeInsets.only(top: 10),
                                          child: CustomButton(
                                            text: AppString.signIn,
                                            onTap: () {
                                              if (signInProvider
                                                  .signInKey.currentState!
                                                  .validate()) {
                                                signInProvider.login(context);
                                              }
                                            },
                                            color: AppColor.primary,
                                            width: width / 2.5,
                                            height: height / 18,
                                          ),
                                        ),
                                      ],
                                    ),
                                  ),
                                ),
                              ],
                            ),
                          ),
                        ),
                      ],
                    ),
                  ),
          ),
        ),
      );
    });
  }
}
Editor is loading...