Untitled

mail@pastecode.io avatar
unknown
dart
2 years ago
76 kB
1
Indexable
Never
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:iketfaa_delivery/App/Common/Services/translation_service.dart';
import 'package:iketfaa_delivery/App/Common/Utilities/Constants/AppColors.dart';
import 'package:iketfaa_delivery/App/Common/Widgets/primary_button.dart';
import 'package:iketfaa_delivery/App/Delivery/Modules/DeliveryUser/DeliveryDriver/DeliveryDriverRegistration/controller/delivery_registration_driver_controller.dart';
import 'package:iketfaa_delivery/App/Delivery/Utilities/Widgets/delivery_white_button.dart';
import 'package:iketfaa_delivery/App/Delivery/Utilities/Widgets/show_modal_list_item.dart';
import 'dart:math' as math;

class DeliveryRegistrationDriverView
    extends GetView<DeliveryDriverRegistrationController> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: AppColors.backgroundColor,
      body: GestureDetector(
        onTap: () {
          controller.unFocusKeyboard(context);
        },
        child: SafeArea(
          child: SingleChildScrollView(
            child: Obx(
              () => controller.registirationPage[controller.indexPage.value],
            ),
          ),
        ),
      ),
    );
  }
}

class RegistrationPage5 extends GetView<DeliveryDriverRegistrationController> {
  RegistrationPage5({
    Key? key,
  }) : super(key: key);
  final GlobalKey<FormState> registrationKey = new GlobalKey<FormState>();
  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        SizedBox(height: 30),
        GreenAppBar(
          index: 5,
          title: 'Agreement'.tr,
        ),
        SizedBox(height: 30),
        Container(
          margin: EdgeInsets.symmetric(horizontal: 15),
          padding: EdgeInsets.symmetric(horizontal: 20, vertical: 25),
          decoration: BoxDecoration(
            borderRadius: BorderRadius.all(Radius.circular(15)),
            color: AppColors.white,
            boxShadow: [
              BoxShadow(
                color: AppColors.grey.withOpacity(0.4),
                blurRadius: 7,
                offset: Offset(0, 3),
                spreadRadius: 0.3,
              ),
            ],
          ),
          child: Column(
            children: [
              SizedBox(height: 15),
              Text('agree&accept'.tr, style: Get.textTheme.headline5),
              SizedBox(height: 15),
              Row(
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisAlignment: MainAxisAlignment.end,
                children: [
                  Obx(
                    () => Checkbox(
                      value: controller.checkValue.value,
                      activeColor: AppColors.primary,
                      onChanged: (value) {
                        controller.checkValue.value = value ?? false;
                      },
                    ),
                  ),
                  SizedBox(height: 5),
                  Flexible(
                    child: Text(
                      'agreementParagraph'.tr,
                      style: Get.textTheme.headline6,
                      overflow: TextOverflow.fade,
                    ),
                  ),
                ],
              ),
              SizedBox(height: 30),
              PrimaryButton(
                text: 'Send request',
                function: () async {
                  if (!controller.checkValue.value) {
                    return controller.commonTools
                        .showFailedSnackBar('pleaseAcceptConditions'.tr);
                  } else {
                    await controller.addDriverToDatabase(context);
                  }
                },
                width: Get.width * 0.7,
                padding: 14.0,
              ),
            ],
          ),
        ),
      ],
    );
  }
}

class RegistrationPage4 extends GetView<DeliveryDriverRegistrationController> {
  RegistrationPage4({
    Key? key,
  }) : super(key: key);
  final GlobalKey<FormState> registrationKey = new GlobalKey<FormState>();
  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        SizedBox(height: 30),
        GreenAppBar(
          index: 4,
          title: 'Your documents'.tr,
        ),
        SizedBox(height: 30),
        Container(
          margin: EdgeInsets.symmetric(horizontal: 15),
          padding: EdgeInsets.symmetric(horizontal: 20, vertical: 25),
          decoration: BoxDecoration(
            borderRadius: BorderRadius.all(Radius.circular(15)),
            color: AppColors.white,
            boxShadow: [
              BoxShadow(
                color: AppColors.grey.withOpacity(0.4),
                blurRadius: 7,
                offset: Offset(0, 3),
                spreadRadius: 0.3,
              ),
            ],
          ),
          child: Column(
            children: [
              PhotoWidgetGetter(
                title: 'acopyoftheNationalID'.tr,
                onTap: () {
                  controller.loadImagesAssets(1);
                },
                index: 1,
              ),
              PhotoWidgetGetter(
                title: 'acopyofthedrivinglicense'.tr,
                onTap: () {
                  controller.loadImagesAssets(2);
                },
                index: 2,
              ),
              PhotoWidgetGetter(
                title: 'clearfrontimageforthevehicle'.tr,
                onTap: () {
                  controller.loadImagesAssets(3);
                },
                index: 3,
              ),
              PhotoWidgetGetter(
                title: 'clearrearimageforthevehicle'.tr,
                onTap: () {
                  controller.loadImagesAssets(4);
                },
                index: 4,
              ),
              PhotoWidgetGetter(
                title: 'acopyofthecarlicense'.tr,
                onTap: () {
                  controller.loadImagesAssets(5);
                },
                index: 5,
              ),
              SizedBox(height: 30),
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  SmallButton(
                    onTap: () {
                      if (controller.checkIfFilesNotSelected()) {
                        return controller.commonTools
                            .showFailedSnackBar('pleaseSelectAllImages'.tr);
                      } else {
                        if (controller.indexPage.value >= 0 &&
                            controller.indexPage.value <
                                controller.registirationPage.length) {
                          controller.indexPage.value += 1;
                        }
                      }
                    },
                    title: 'next'.tr,
                    border: true,
                    color: AppColors.white,
                    fontColor: AppColors.black,
                  ),
                  SmallButton(
                    onTap: () {
                      if (controller.indexPage.value >= 0 &&
                          controller.indexPage.value <
                              controller.registirationPage.length) {
                        controller.indexPage.value -= 1;
                      }
                    },
                    title: 'back'.tr,
                    color: AppColors.grey,
                  ),
                ],
              ),
            ],
          ),
        ),
      ],
    );
  }
}

class RegistrationPage3 extends GetView<DeliveryDriverRegistrationController> {
  final GlobalKey<FormState> registrationKey = new GlobalKey<FormState>();
  RegistrationPage3({
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Obx(
      () => Form(
        key: registrationKey,
        child: Column(
          children: [
            SizedBox(height: 30),
            GreenAppBar(
              index: 3,
              title: 'Your accommodation information'.tr,
            ),
            SizedBox(height: 30),
            Container(
              margin: EdgeInsets.symmetric(horizontal: 15),
              padding: EdgeInsets.symmetric(horizontal: 20, vertical: 25),
              decoration: BoxDecoration(
                borderRadius: BorderRadius.all(Radius.circular(15)),
                color: AppColors.white,
                boxShadow: [
                  BoxShadow(
                    color: AppColors.grey.withOpacity(0.4),
                    blurRadius: 7,
                    offset: Offset(0, 3),
                    spreadRadius: 0.3,
                  )
                ],
              ),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text(
                    'district'.tr,
                    style: Get.textTheme.headline4,
                  ),
                  SizedBox(
                    height: 10.0,
                  ),
                  DeliveryWhiteButton(
                    onTap: () {
                      chooseDistrectlBottomSheet(context);
                    },
                    title: controller.districtValue.value,
                  ),
                  SizedBox(height: 25.0),
                  Text(
                    'city'.tr,
                    style: Get.textTheme.headline4,
                  ),
                  SizedBox(
                    height: 10.0,
                  ),
                  DeliveryWhiteButton(
                      onTap: () {
                        if (controller.currentDistrict != null) {
                          chooseCityModalBottomSheet(context);
                        } else {
                          controller.commonTools
                              .showFailedSnackBar('chooseDistrict'.tr);
                        }
                      },
                      title: controller.cityValue.value),
                  SizedBox(height: 25.0),
                  CustomizedTextField(
                    textFieldController:
                        controller.neighborhoodController.value,
                    hint: 'enterNeighborhood'.tr,
                    title: 'neighborhood'.tr,
                    textInputType: TextInputType.text,
                    validator: (value) => controller.commonTools
                        .neighborhoodValidate(
                            value, controller.neighborhoodController.value),
                  ),
                  SizedBox(height: 25),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.spaceAround,
                    children: [
                      SmallButton(
                        onTap: () {
                          controller.unFocusKeyboard(context);

                          if (controller.currentDistrict == null)
                            return controller.commonTools
                                .showFailedSnackBar('chooseDistrict'.tr);

                          if (controller.currentCity == null)
                            return controller.commonTools
                                .showFailedSnackBar('chooseCity'.tr);

                          if (registrationKey.currentState!.validate()) {
                            if (controller.indexPage.value >= 0 &&
                                controller.indexPage.value <
                                    controller.registirationPage.length) {
                              controller.indexPage.value += 1;
                            }
                          }
                        },
                        title: 'next'.tr,
                        border: true,
                        color: AppColors.white,
                        fontColor: AppColors.black,
                      ),
                      SmallButton(
                        onTap: () {
                          if (controller.indexPage.value >= 0 &&
                              controller.indexPage.value <
                                  controller.registirationPage.length) {
                            controller.indexPage.value -= 1;
                          }
                        },
                        title: 'back'.tr,
                        color: AppColors.grey,
                      ),
                    ],
                  ),
                ],
              ),
            )
          ],
        ),
      ),
    );
  }

  void chooseDistrectlBottomSheet(context) {
    showModalBottomSheet(
      elevation: 5,
      backgroundColor: AppColors.white.withOpacity(0),
      context: context,
      builder: (BuildContext bc) {
        return Container(
          decoration: BoxDecoration(
            //color: Colors.transparent,
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(15),
              topRight: Radius.circular(15),
            ),
          ),
          child: Container(
            decoration: BoxDecoration(
              color: AppColors.white,
              borderRadius: BorderRadius.only(
                topLeft: const Radius.circular(20.0),
                topRight: const Radius.circular(20.0),
              ),
            ),
            child: Wrap(
              children: <Widget>[
                Container(height: 10),
                Center(
                  child: Text(
                    'chooseDistrict'.tr,
                    style: Get.textTheme.headline5,
                  ),
                ),
                Container(height: 10),
                Container(
                  height: Get.width * 0.8,
                  child: ListView.builder(
                    physics: BouncingScrollPhysics(),
                    itemCount: controller.deliveryHubController
                        .dashboardController.regions.value.districts!.length,
                    itemBuilder: (context, index) {
                      return ShowModalListItem(
                        title: TranslationService().isLocaleArabic()
                            ? controller
                                .deliveryHubController
                                .dashboardController
                                .regions
                                .value
                                .districts![index]
                                .districtAR
                                .toString()
                            : controller
                                .deliveryHubController
                                .dashboardController
                                .regions
                                .value
                                .districts![index]
                                .districtEN
                                .toString(),
                        onTap: () {
                          controller.districtValue.value =
                              TranslationService().isLocaleArabic()
                                  ? controller
                                      .deliveryHubController
                                      .dashboardController
                                      .regions
                                      .value
                                      .districts![index]
                                      .districtAR
                                      .toString()
                                  : controller
                                      .deliveryHubController
                                      .dashboardController
                                      .regions
                                      .value
                                      .districts![index]
                                      .districtEN
                                      .toString();

                          controller.currentDistrict = controller
                              .deliveryHubController
                              .dashboardController
                              .regions
                              .value
                              .districts![index];

                          Navigator.pop(context);
                        },
                      );
                    },
                  ),
                )
              ],
            ),
          ),
        );
      },
    );
  }

  void chooseCityModalBottomSheet(context) {
    showModalBottomSheet(
      elevation: 5,
      backgroundColor: AppColors.white.withOpacity(0),
      context: context,
      builder: (BuildContext bc) {
        return Container(
          decoration: BoxDecoration(
            //color: Colors.transparent,
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(15),
              topRight: Radius.circular(15),
            ),
          ),
          child: Container(
            decoration: BoxDecoration(
              color: AppColors.white,
              borderRadius: BorderRadius.only(
                topLeft: const Radius.circular(20.0),
                topRight: const Radius.circular(20.0),
              ),
            ),
            child: Wrap(
              children: <Widget>[
                Container(height: 10),
                Center(
                  child: Text(
                    'chooseCity'.tr,
                    style: Get.textTheme.headline5,
                  ),
                ),
                Container(height: 10),
                Container(
                  height: Get.width * 0.8,
                  child: ListView.builder(
                      physics: BouncingScrollPhysics(),
                      itemCount: controller.currentDistrict!.cities!.length,
                      itemBuilder: (context, index) {
                        return ShowModalListItem(
                          title: TranslationService().isLocaleArabic()
                              ? controller
                                  .currentDistrict!.cities![index].cityAR
                                  .toString()
                              : controller
                                  .currentDistrict!.cities![index].cityEN
                                  .toString(),
                          onTap: () {
                            controller.cityValue.value =
                                TranslationService().isLocaleArabic()
                                    ? controller
                                        .currentDistrict!.cities![index].cityAR
                                        .toString()
                                    : controller
                                        .currentDistrict!.cities![index].cityEN
                                        .toString();

                            controller.currentCity =
                                controller.currentDistrict!.cities![index];

                            Navigator.pop(context);
                          },
                        );
                      }),
                )
              ],
            ),
          ),
        );
      },
    );
  }
}

class RegistrationPage2 extends GetView<DeliveryDriverRegistrationController> {
  RegistrationPage2({Key? key}) : super(key: key);
  final GlobalKey<FormState> registrationKey = new GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    return Obx(
      () => Form(
        key: registrationKey,
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            SizedBox(height: 30),
            GreenAppBar(
              index: 2,
              title: 'Your vehicle information'.tr,
            ),
            SizedBox(height: 30),
            Container(
              margin: EdgeInsets.symmetric(horizontal: 15),
              padding: EdgeInsets.symmetric(horizontal: 20, vertical: 25),
              decoration: BoxDecoration(
                borderRadius: BorderRadius.all(Radius.circular(15)),
                color: AppColors.white,
                boxShadow: [
                  BoxShadow(
                    color: AppColors.grey.withOpacity(0.4),
                    blurRadius: 7,
                    offset: Offset(0, 3),
                    spreadRadius: 0.3,
                  )
                ],
              ),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text(
                    'carType'.tr,
                    style: Get.textTheme.headline4,
                  ),
                  SizedBox(
                    height: 10.0,
                  ),
                  DeliveryWhiteButton(
                    onTap: () {
                      chooseCarTypeModalBottomSheet(context);
                    },
                    title: controller.carTypeValue.value,
                  ),
                  SizedBox(height: 25.0),
                  Text(
                    'carModel'.tr,
                    style: Get.textTheme.headline4,
                  ),
                  SizedBox(
                    height: 10.0,
                  ),
                  DeliveryWhiteButton(
                    onTap: () {
                      if (controller.currentCarType != null) {
                        chooseCarModelModalBottomSheet(context);
                      } else {
                        controller.commonTools
                            .showFailedSnackBar('chooseCarType'.tr);
                      }
                    },
                    title: controller.carModelValue.value,
                  ),
                  SizedBox(height: 25.0),
                  Text(
                    'manufacturingyear'.tr,
                    style: Get.textTheme.headline4,
                  ),
                  SizedBox(
                    height: 10.0,
                  ),
                  DeliveryWhiteButton(
                    onTap: () {
                      chooseManfacturingDateBottomSheet(context);
                    },
                    title: controller.currentCarManfacturingYear.value,
                  ),
                  SizedBox(height: 25),
                  Text(
                    'vehicleplateletter&numbers'.tr,
                    style: Get.textTheme.headline4,
                  ),
                  SizedBox(
                    height: 15.0,
                  ),
                  Row(
                    crossAxisAlignment: CrossAxisAlignment.center,
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      Flexible(
                        child: TextFormField(
                          inputFormatters: [
                            LengthLimitingTextInputFormatter(3),
                          ],
                          focusNode: controller.textFirstFocusNode,
                          readOnly: controller.readOnlyTextFieldLetter.value,
                          validator: (value) => controller.commonTools
                              .plateLetterCarValidate(value,
                                  controller.plateLetterController.value),
                          onChanged: (value) {
                            if (value.length == 3) {
                              FocusScope.of(context)
                                  .requestFocus(controller.textSecondFocusNode);
                            }
                          },
                          textAlign: TextAlign.center,
                          controller: controller.plateLetterController.value,
                          style: Get.textTheme.headline6!.copyWith(
                            color: AppColors.grey.withOpacity(0.8),
                            fontWeight: FontWeight.w600,
                          ),
                          decoration: InputDecoration(
                            contentPadding: const EdgeInsets.only(
                                left: 2.0, right: 2.0, top: 2),
                            border: OutlineInputBorder(),
                            enabledBorder: OutlineInputBorder(
                              borderRadius: controller
                                  .textFieldVehicleLetterPlateBorderRadius,
                              borderSide: const BorderSide(
                                  color: Colors.grey, width: 1.0),
                            ),
                            focusedBorder: OutlineInputBorder(
                              borderRadius: controller
                                  .textFieldVehicleLetterPlateBorderRadius,
                              borderSide: const BorderSide(
                                  color: AppColors.primary, width: 1.0),
                            ),
                            errorBorder: OutlineInputBorder(
                              borderRadius: controller
                                  .textFieldVehicleLetterPlateBorderRadius,
                              borderSide: const BorderSide(
                                  color: Colors.red, width: 1.0),
                            ),
                            focusedErrorBorder: OutlineInputBorder(
                              borderRadius: controller
                                  .textFieldVehicleLetterPlateBorderRadius,
                              borderSide: const BorderSide(
                                  color: Colors.red, width: 1.0),
                            ),
                            filled: true,
                            fillColor: AppColors.white,
                            hintText: 'plateletter'.tr,
                            hintStyle: Get.textTheme.headline6!.copyWith(
                              color: AppColors.grey.withOpacity(0.8),
                              fontWeight: FontWeight.w600,
                            ),
                          ),
                        ),
                      ),
                      Flexible(
                        child: TextFormField(
                          inputFormatters: [
                            LengthLimitingTextInputFormatter(4),
                          ],
                          focusNode: controller.textSecondFocusNode,
                          validator: (value) => controller.commonTools
                              .plateNumberCarValidate(value,
                                  controller.plateNumberController.value),
                          onChanged: (value) {
                            if (value.length == 0) {
                              FocusScope.of(context)
                                  .requestFocus(controller.textFirstFocusNode);
                            }
                          },
                          textAlign: TextAlign.center,
                          controller: controller.plateNumberController.value,
                          style: Get.textTheme.headline6!.copyWith(
                            color: AppColors.grey.withOpacity(0.8),
                            fontWeight: FontWeight.w600,
                          ),
                          decoration: InputDecoration(
                            contentPadding: const EdgeInsets.only(
                                left: 2.0, right: 2.0, top: 2),
                            border: OutlineInputBorder(),
                            enabledBorder: OutlineInputBorder(
                              borderRadius: controller
                                  .textFieldVehicleNumberPlateBorderRadius,
                              borderSide: const BorderSide(
                                  color: Colors.grey, width: 1.0),
                            ),
                            focusedBorder: OutlineInputBorder(
                              borderRadius: controller
                                  .textFieldVehicleNumberPlateBorderRadius,
                              borderSide: const BorderSide(
                                  color: AppColors.primary, width: 1.0),
                            ),
                            errorBorder: OutlineInputBorder(
                              borderRadius: controller
                                  .textFieldVehicleNumberPlateBorderRadius,
                              borderSide: const BorderSide(
                                  color: Colors.red, width: 1.0),
                            ),
                            focusedErrorBorder: OutlineInputBorder(
                              borderRadius: controller
                                  .textFieldVehicleNumberPlateBorderRadius,
                              borderSide: const BorderSide(
                                  color: Colors.red, width: 1.0),
                            ),
                            filled: true,
                            fillColor: AppColors.white,
                            hintText: 'platenumber'.tr,
                            hintStyle: Get.textTheme.headline6!.copyWith(
                              color: AppColors.grey.withOpacity(0.8),
                              fontWeight: FontWeight.w600,
                            ),
                          ),
                        ),
                      ),
                    ],
                  ),
                  SizedBox(height: 25.0),
                  Text(
                    'carclass'.tr,
                    style: Get.textTheme.headline4,
                  ),
                  SizedBox(
                    height: 15.0,
                  ),
                  DeliveryWhiteButton(
                      onTap: () {
                        chooseCarClassBottomSheet(context);
                      },
                      title: controller.currentCarClassValue.value),
                  SizedBox(height: 25),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.spaceAround,
                    children: [
                      SmallButton(
                        onTap: () {
                          controller.unFocusKeyboard(context);

                          if (controller.currentCarType == null)
                            return controller.commonTools
                                .showFailedSnackBar('chooseCarType'.tr);

                          if (controller.currentCarModels == null)
                            return controller.commonTools
                                .showFailedSnackBar('chooseCarModel'.tr);

                          if (controller.currentCarManfacturingYear ==
                              'select'.tr)
                            return controller.commonTools.showFailedSnackBar(
                                'chooseCarManfacturingYear'.tr);

                          if (controller.currentCarClass == null)
                            return controller.commonTools
                                .showFailedSnackBar('chooseCarClass'.tr);

                          if (registrationKey.currentState!.validate()) {
                            if (controller.indexPage.value >= 0 &&
                                controller.indexPage.value <
                                    controller.registirationPage.length) {
                              controller.indexPage.value += 1;
                            }
                          }
                        },
                        title: 'next'.tr,
                        border: true,
                        fontColor: AppColors.black,
                        color: AppColors.white,
                      ),
                      SmallButton(
                        onTap: () {
                          if (controller.indexPage.value >= 0 &&
                              controller.indexPage.value <
                                  controller.registirationPage.length) {
                            controller.indexPage.value -= 1;
                          }
                        },
                        title: 'back'.tr,
                        color: AppColors.grey,
                      ),
                    ],
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }

  void chooseCarTypeModalBottomSheet(context) {
    showModalBottomSheet(
      elevation: 5,
      backgroundColor: AppColors.white.withOpacity(0),
      context: context,
      builder: (BuildContext bc) {
        return Container(
          decoration: BoxDecoration(
            //color: Colors.transparent,
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(15),
              topRight: Radius.circular(15),
            ),
          ),
          child: Container(
            decoration: BoxDecoration(
              color: AppColors.white,
              borderRadius: BorderRadius.only(
                topLeft: const Radius.circular(20.0),
                topRight: const Radius.circular(20.0),
              ),
            ),
            child: Wrap(
              children: <Widget>[
                Container(height: 10),
                Center(
                  child: Text(
                    'chooseCarType'.tr,
                    style: Get.textTheme.headline5,
                  ),
                ),
                Container(height: 10),
                Container(
                  height: Get.width * 0.8,
                  child: ListView.builder(
                    physics: BouncingScrollPhysics(),
                    itemCount: controller.deliveryHubController
                        .dashboardController.cars.value.carTypes!.length,
                    itemBuilder: (context, index) {
                      return ShowModalListItem(
                        title: TranslationService().isLocaleArabic()
                            ? controller
                                .deliveryHubController
                                .dashboardController
                                .cars
                                .value
                                .carTypes![index]
                                .typeAR
                                .toString()
                            : controller
                                .deliveryHubController
                                .dashboardController
                                .cars
                                .value
                                .carTypes![index]
                                .typeEN
                                .toString(),
                        onTap: () {
                          controller.carTypeValue.value =
                              TranslationService().isLocaleArabic()
                                  ? controller
                                      .deliveryHubController
                                      .dashboardController
                                      .cars
                                      .value
                                      .carTypes![index]
                                      .typeAR
                                      .toString()
                                  : controller
                                      .deliveryHubController
                                      .dashboardController
                                      .cars
                                      .value
                                      .carTypes![index]
                                      .typeEN
                                      .toString();

                          controller.currentCarType = controller
                              .deliveryHubController
                              .dashboardController
                              .cars
                              .value
                              .carTypes![index];

                          //controller.carModel = 'select'.obs;
                          Navigator.pop(context);
                        },
                      );
                    },
                  ),
                )
              ],
            ),
          ),
        );
      },
    );
  }

  void chooseCarModelModalBottomSheet(context) {
    showModalBottomSheet(
      elevation: 5,
      backgroundColor: AppColors.white.withOpacity(0),
      context: context,
      builder: (BuildContext bc) {
        return Container(
          decoration: BoxDecoration(
            //color: Colors.transparent,
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(15),
              topRight: Radius.circular(15),
            ),
          ),
          child: Container(
            decoration: BoxDecoration(
              color: AppColors.white,
              borderRadius: BorderRadius.only(
                topLeft: const Radius.circular(20.0),
                topRight: const Radius.circular(20.0),
              ),
            ),
            child: Wrap(
              children: <Widget>[
                Container(height: 10),
                Center(
                  child: Text(
                    'chooseCarModel'.tr,
                    style: Get.textTheme.headline5,
                  ),
                ),
                Container(height: 10),
                Container(
                  height: Get.width * 0.8,
                  child: ListView.builder(
                      physics: BouncingScrollPhysics(),
                      itemCount: controller.currentCarType!.carModels!.length,
                      itemBuilder: (context, index) {
                        return ShowModalListItem(
                          title: TranslationService().isLocaleArabic()
                              ? controller
                                  .currentCarType!.carModels![index].modelAR
                                  .toString()
                              : controller
                                  .currentCarType!.carModels![index].modelEN
                                  .toString(),
                          onTap: () {
                            controller.carModelValue.value =
                                TranslationService().isLocaleArabic()
                                    ? controller.currentCarType!
                                        .carModels![index].modelAR
                                        .toString()
                                    : controller.currentCarType!
                                        .carModels![index].modelEN
                                        .toString();

                            controller.currentCarModels =
                                controller.currentCarType!.carModels![index];

                            Navigator.pop(context);
                          },
                        );
                      }),
                )
              ],
            ),
          ),
        );
      },
    );
  }

  void chooseManfacturingDateBottomSheet(context) {
    showModalBottomSheet(
      elevation: 5,
      backgroundColor: AppColors.white.withOpacity(0),
      context: context,
      builder: (BuildContext bc) {
        return Container(
          decoration: BoxDecoration(
            //color: Colors.transparent,
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(15),
              topRight: Radius.circular(15),
            ),
          ),
          child: Container(
            decoration: BoxDecoration(
              color: AppColors.white,
              borderRadius: BorderRadius.only(
                topLeft: const Radius.circular(20.0),
                topRight: const Radius.circular(20.0),
              ),
            ),
            child: Wrap(
              children: <Widget>[
                Container(height: 10),
                Center(
                  child: Text(
                    'chooseCarManfacturingYear'.tr,
                    style: Get.textTheme.headline5,
                  ),
                ),
                Container(height: 10),
                Container(
                  height: Get.width * 0.8,
                  child: ListView(
                    physics: BouncingScrollPhysics(),
                    shrinkWrap: true,
                    children: controller.manfacturingCars
                        .map((e) => ShowModalListItem(
                              onTap: () {
                                controller.currentCarManfacturingYear.value =
                                    e.toString();
                                Navigator.pop(context);
                              },
                              title: e,
                            ))
                        .toList(),
                  ),
                )
              ],
            ),
          ),
        );
      },
    );
  }

  void chooseCarClassBottomSheet(context) {
    showModalBottomSheet(
      elevation: 5,
      backgroundColor: AppColors.white.withOpacity(0),
      context: context,
      builder: (BuildContext bc) {
        return Container(
          decoration: BoxDecoration(
            //color: Colors.transparent,
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(15),
              topRight: Radius.circular(15),
            ),
          ),
          child: Container(
            decoration: BoxDecoration(
              color: AppColors.white,
              borderRadius: BorderRadius.only(
                topLeft: const Radius.circular(20.0),
                topRight: const Radius.circular(20.0),
              ),
            ),
            child: Wrap(
              children: <Widget>[
                Container(height: 10),
                Center(
                  child: Text(
                    'chooseCarClass'.tr,
                    style: Get.textTheme.headline5,
                  ),
                ),
                Container(height: 10),
                Container(
                  height: Get.width * 0.8,
                  child: ListView.builder(
                      physics: BouncingScrollPhysics(),
                      itemCount: controller
                          .deliveryHubController
                          .dashboardController
                          .carClasses
                          .value
                          .carClasses!
                          .length,
                      itemBuilder: (context, index) {
                        return ShowModalListItem(
                          onTap: () {
                            controller.currentCarClass = controller
                                .deliveryHubController
                                .dashboardController
                                .carClasses
                                .value
                                .carClasses![index];
                            controller.currentCarClassValue.value =
                                TranslationService().isLocaleArabic()
                                    ? controller
                                        .deliveryHubController
                                        .dashboardController
                                        .carClasses
                                        .value
                                        .carClasses![index]
                                        .classAR
                                        .toString()
                                    : controller
                                        .deliveryHubController
                                        .dashboardController
                                        .carClasses
                                        .value
                                        .carClasses![index]
                                        .classEN
                                        .toString();
                            Navigator.pop(context);
                          },
                          title: TranslationService().isLocaleArabic()
                              ? controller
                                  .deliveryHubController
                                  .dashboardController
                                  .carClasses
                                  .value
                                  .carClasses![index]
                                  .classAR
                                  .toString()
                              : controller
                                  .deliveryHubController
                                  .dashboardController
                                  .carClasses
                                  .value
                                  .carClasses![index]
                                  .classEN
                                  .toString(),
                        );
                      }),
                )
              ],
            ),
          ),
        );
      },
    );
  }
}

class RegistrationPage1 extends GetView<DeliveryDriverRegistrationController> {
  RegistrationPage1({Key? key}) : super(key: key);
  final GlobalKey<FormState> registrationKey = new GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    return Obx(
      () => Form(
        key: registrationKey,
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            SizedBox(height: 30),
            GreenAppBar(
              index: 1,
              title: 'Your personal information'.tr,
            ),
            SizedBox(height: 30),
            Container(
              margin: EdgeInsets.symmetric(horizontal: 15),
              padding: EdgeInsets.symmetric(horizontal: 20, vertical: 25),
              decoration: BoxDecoration(
                borderRadius: BorderRadius.all(Radius.circular(15)),
                color: AppColors.white,
                boxShadow: [
                  BoxShadow(
                      color: AppColors.grey.withOpacity(0.4),
                      blurRadius: 7,
                      offset: Offset(0, 3),
                      spreadRadius: 0.3)
                ],
              ),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  CustomizedTextField(
                    textFieldController: controller.fullNameController.value,
                    hint: 'enteryourfullname'.tr,
                    title: 'fullname'.tr,
                    subtitle: '(MustmatchyournameinID)'.tr,
                    textInputType: TextInputType.text,
                    validator: (value) => controller.commonTools.nameValidate(
                        value, controller.fullNameController.value),
                  ),
                  SizedBox(height: 15),
                  CustomizedTextField(
                    textFieldController: controller.iDNumberController.value,
                    hint: 'enteryourIDnumber'.tr,
                    title: 'nationalIDnumber'.tr,
                    textInputType: TextInputType.number,
                    validator: (value) => controller.commonTools
                        .idNumberValidate(
                            value, controller.iDNumberController.value),
                    maxLength: 10,
                  ),
                  SizedBox(height: 15),
                  Text(
                    'dateofbirth'.tr,
                    style: Get.textTheme.headline5,
                  ),
                  DeliveryRegistrationButton(
                    onTap: () {
                      chooseDateOfBirth(context);
                    },
                    title: controller.currentBirthDate.value,
                  ),
                  SizedBox(height: 15),
                  CustomizedTextField(
                    textFieldController: controller.emailController.value,
                    hint: 'enteryourEmailAdrees'.tr,
                    title: 'emailAdrees'.tr,
                    textInputType: TextInputType.emailAddress,
                    validator: (value) => controller.commonTools
                        .emailValidate(value, controller.emailController.value),
                  ),
                  SizedBox(height: 15),
                  Text(
                    'iDexpirydate'.tr,
                    style: Get.textTheme.headline5,
                  ),
                  DeliveryRegistrationButton(
                    onTap: () {
                      chooseExpiryDateOfId(context);
                    },
                    title: controller.currentExpiryDate.value,
                  ),
                  SizedBox(height: 15),
                  SizedBox(height: 15),
                  Text('profilepicture'.tr, style: Get.textTheme.headline5),
                  SizedBox(height: 5),
                  Text('(Musthaveawhitebackground&withoutanyfilter)'.tr,
                      style: Get.textTheme.headline6),
                  SizedBox(height: 10),
                  Visibility(
                    visible: controller.driverPersonalImage.value.path != (''),
                    child: Container(
                      height: Get.width * 0.43,
                      width: Get.width * 0.86,
                      margin: EdgeInsets.only(bottom: 30.0),
                      child: Center(
                        child: Container(
                          height: Get.width * 0.38,
                          width: Get.width * 0.4,
                          child: Obx(
                            () => Container(
                              margin: EdgeInsets.only(right: 10.0),
                              child: Stack(
                                children: [
                                  Container(
                                    alignment: Alignment.center,
                                    child: ClipRRect(
                                      borderRadius: BorderRadius.circular(15.0),
                                      child: Container(
                                        child: Image.file(
                                          controller.driverPersonalImage.value,
                                        ),
                                      ),
                                    ),
                                  ),
                                  Positioned.fill(
                                    child: Container(
                                      height: Get.width * 0.38,
                                      decoration: BoxDecoration(
                                        color: Colors.black.withOpacity(0.2),
                                        borderRadius: BorderRadius.circular(
                                          15.0,
                                        ),
                                      ),
                                    ),
                                  ),
                                  Positioned.fill(
                                    child: Align(
                                      alignment: Alignment.bottomRight,
                                      child: InkWell(
                                        onTap: () async {
                                          controller.driverPersonalImage.value =
                                              File('');
                                        },
                                        child: Container(
                                          width: 40,
                                          height: 40,
                                          margin: EdgeInsets.all(5.0),
                                          padding: EdgeInsets.all(5.0),
                                          child: CircleAvatar(
                                            backgroundColor: Colors.red,
                                            radius: 40,
                                            child: Icon(
                                              Icons.delete,
                                              color: AppColors.white,
                                            ),
                                          ),
                                        ),
                                      ),
                                    ),
                                  ),
                                ],
                              ),
                            ),
                          ),
                        ),
                      ),
                    ),
                  ),
                  Visibility(
                    visible: controller.driverPersonalImage.value.path == '',
                    child: Column(
                      mainAxisAlignment: MainAxisAlignment.start,
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Container(
                          width: Get.width * 0.3,
                          height: Get.width * 0.12,
                          decoration: BoxDecoration(
                            color: AppColors.primary,
                            borderRadius: BorderRadius.circular(30),
                          ),
                          child: Material(
                            color: AppColors.primary,
                            borderRadius: BorderRadius.circular(30),
                            child: InkWell(
                              borderRadius: BorderRadius.circular(30),
                              onTap: () => controller.loadImagesAssets(0),
                              child: Center(
                                child: Text(
                                  'select'.tr,
                                  style: Get.textTheme.headline4!.copyWith(
                                    color: AppColors.white,
                                  ),
                                ),
                              ),
                            ),
                          ),
                        ),
                      ],
                    ),
                  ),
                  SizedBox(height: 20),
                  CustomizedTextField(
                    textFieldController:
                        controller.mobileNumberController.value,
                    hint: 'yourmobilenumber'.tr,
                    title: 'mobileNubmber'.tr,
                    textInputType: TextInputType.number,
                    validator: (value) => controller.commonTools
                        .phoneNumberValidate(
                            value, controller.mobileNumberController.value),
                    codeKey: Padding(
                      padding: const EdgeInsets.all(20.0),
                      child: Text(
                        '+966 | ',
                        style: Get.textTheme.headline6,
                      ),
                    ),
                    maxLength: 10,
                  ),
                  SizedBox(height: 20),
                  SmallButton(
                    onTap: () {
                      controller.unFocusKeyboard(context);

                      if (!registrationKey.currentState!.validate()) {
                        return;
                      }

                      if (controller.currentBirthDate.value == 'select'.tr) {
                        controller.commonTools
                            .showFailedSnackBar('enterBirthDate');

                        return;
                      }

                      if (controller.currentExpiryDate.value == 'select'.tr) {
                        controller.commonTools
                            .showFailedSnackBar('enterExpireDate');

                        return;
                      }

                      if (controller.driverPersonalImage.value.path == '') {
                        controller.commonTools
                            .showFailedSnackBar('choosePersonalImage');

                        return;
                      }
                      if (controller.indexPage.value >= 0) {
                        controller.indexPage.value += 1;
                      }
                    },
                    title: 'next'.tr,
                    border: true,
                    color: AppColors.white,
                    fontColor: AppColors.black,
                  ),
                  SizedBox(height: 20),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }

  void chooseDateOfBirth(context) {
    showModalBottomSheet(
        isScrollControlled: true,
        elevation: 5,
        backgroundColor: AppColors.white.withOpacity(0),
        context: context,
        builder: (BuildContext bc) {
          return Container(
            padding: EdgeInsets.only(
                bottom: MediaQuery.of(context).viewInsets.bottom),
            decoration: BoxDecoration(
              borderRadius: BorderRadius.only(
                topLeft: Radius.circular(15),
                topRight: Radius.circular(15),
              ),
            ),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.end,
              children: [
                Container(
                  width: Get.width,
                  padding: EdgeInsets.all(10.0),
                  decoration: BoxDecoration(
                    color: AppColors.white,
                    borderRadius: BorderRadius.only(
                      topLeft: const Radius.circular(20.0),
                      topRight: const Radius.circular(20.0),
                    ),
                  ),
                  child: Center(
                    child: Text(
                      'choose Date of birth'.tr,
                      style: Get.textTheme.headline4,
                    ),
                  ),
                ),
                Container(
                  color: AppColors.white,
                  height: Get.width * 0.5,
                  child: CupertinoDatePicker(
                      dateOrder: DatePickerDateOrder.dmy,
                      initialDateTime: DateTime.now(),
                      maximumYear: 2022,
                      minimumYear: 1950,
                      mode: CupertinoDatePickerMode.date,
                      onDateTimeChanged: (datetime) {
                        controller.selectedDateOfBirth = datetime;
                      }),
                ),
                Container(
                  color: AppColors.white,
                  width: Get.width,
                  child: Container(
                    child: Material(
                      color: Colors.transparent,
                      child: InkWell(
                        onTap: () {
                          print('s');
                          controller.dateOfBirthDay.value =
                              controller.selectedDateOfBirth.day;
                          controller.dateOfBirthMonth.value =
                              controller.selectedDateOfBirth.month;
                          controller.dateOfBirthYear.value =
                              controller.selectedDateOfBirth.year;
                          controller.currentBirthDate.value =
                              '${controller.dateOfBirthDay.value}/${controller.dateOfBirthMonth.value}/${controller.dateOfBirthYear.value}';
                          Navigator.pop(context);
                        },
                        child: Container(
                          padding: EdgeInsets.all(30.0),
                          child: Center(
                            child: Text(
                              'ok'.tr,
                              style: Get.textTheme.headline5,
                            ),
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
              ],
            ),
          );
        });
  }

  void chooseExpiryDateOfId(context) {
    showModalBottomSheet(
        isScrollControlled: true,
        elevation: 5,
        backgroundColor: AppColors.white.withOpacity(0),
        context: context,
        builder: (BuildContext bc) {
          return Container(
            padding: EdgeInsets.only(
                bottom: MediaQuery.of(context).viewInsets.bottom),
            decoration: BoxDecoration(
              borderRadius: BorderRadius.only(
                topLeft: Radius.circular(15),
                topRight: Radius.circular(15),
              ),
            ),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.end,
              children: [
                Container(
                  width: Get.width,
                  padding: EdgeInsets.all(10.0),
                  decoration: BoxDecoration(
                    color: AppColors.white,
                    borderRadius: BorderRadius.only(
                      topLeft: const Radius.circular(20.0),
                      topRight: const Radius.circular(20.0),
                    ),
                  ),
                  child: Center(
                    child: Text(
                      'choose Expire Date'.tr,
                      style: Get.textTheme.headline4,
                    ),
                  ),
                ),
                Container(
                  color: AppColors.white,
                  height: Get.width * 0.5,
                  child: CupertinoDatePicker(
                      dateOrder: DatePickerDateOrder.dmy,
                      initialDateTime: DateTime.now(),
                      maximumYear: 2050,
                      minimumYear: 2020,
                      mode: CupertinoDatePickerMode.date,
                      onDateTimeChanged: (datetime) {
                        controller.selectedExpiryDateOfID = datetime;
                      }),
                ),
                Container(
                  color: AppColors.white,
                  width: Get.width,
                  child: Container(
                    child: Material(
                      color: Colors.transparent,
                      child: InkWell(
                        onTap: () {
                          controller.expiryDay.value =
                              controller.selectedExpiryDateOfID.day;
                          controller.expiryMonth.value =
                              controller.selectedExpiryDateOfID.month;
                          controller.expiryYear.value =
                              controller.selectedExpiryDateOfID.year;
                          controller.currentExpiryDate.value =
                              '${controller.expiryDay.value}/${controller.expiryMonth.value}/${controller.expiryYear.value}';
                          Navigator.pop(context);
                        },
                        child: Container(
                          padding: EdgeInsets.all(30.0),
                          child: Center(
                            child: Text(
                              'ok'.tr,
                              style: Get.textTheme.headline5,
                            ),
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
              ],
            ),
          );
        });
  }
}

class PhotoWidgetGetter extends GetView<DeliveryDriverRegistrationController> {
  final String title;
  final VoidCallback onTap;
  final int index;
  final File? image;
  const PhotoWidgetGetter(
      {Key? key,
      required this.title,
      required this.onTap,
      required this.index,
      this.image})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Obx(
      () => Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          SizedBox(
            height: 10,
            width: Get.width,
          ),
          Text(
            title.tr,
            style: Get.textTheme.headline5,
          ),
          SizedBox(height: 10),
          Container(
            color: controller.getCorrectFileByIndex(index)!.path.isEmpty
                ? AppColors.grey.withOpacity(0.3)
                : AppColors.white,
            width: Get.width * 0.7,
            height: Get.width * 0.55,
            child: controller.getCorrectFileByIndex(index)!.path.isEmpty
                ? Center(
                    child: Icon(
                      Icons.photo,
                      color: AppColors.grey,
                      size: 35,
                    ),
                  )
                : Obx(
                    () => Container(
                      margin: EdgeInsets.only(right: 10.0),
                      child: Stack(
                        children: [
                          Container(
                            alignment: Alignment.center,
                            child: ClipRRect(
                              borderRadius: BorderRadius.circular(15.0),
                              child: Container(
                                child: Image.file(
                                  controller.getCorrectFileByIndex(index)!,
                                ),
                              ),
                            ),
                          ),
                          Positioned.fill(
                            child: Align(
                              alignment: Alignment.bottomCenter,
                              child: InkWell(
                                onTap: () async {
                                  controller.deleteFileByIndex(index);
                                },
                                child: Container(
                                  width: 40,
                                  height: 40,
                                  margin: EdgeInsets.all(5.0),
                                  padding: EdgeInsets.all(5.0),
                                  child: CircleAvatar(
                                    backgroundColor: Colors.red,
                                    radius: 40,
                                    child: Icon(
                                      Icons.delete,
                                      color: AppColors.white,
                                    ),
                                  ),
                                ),
                              ),
                            ),
                          ),
                        ],
                      ),
                    ),
                  ),
          ),
          SizedBox(height: 10),
          Visibility(
            visible: controller.getCorrectFileByIndex(index)!.path.isEmpty,
            child: SmallButton(
              onTap: onTap,
              title: 'select'.tr,
              border: false,
            ),
          ),
          SizedBox(
            height: 20.0,
          ),
        ],
      ),
    );
  }
}

class GreenAppBar extends GetView<DeliveryDriverRegistrationController> {
  final int index;
  final String title;

  const GreenAppBar({
    Key? key,
    required this.index,
    required this.title,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      height: Get.width * 0.18,
      child: Stack(
        children: [
          Positioned(
            bottom: 0,
            child: Container(
              decoration: BoxDecoration(
                borderRadius: BorderRadius.only(
                  bottomLeft: Radius.circular(25),
                  bottomRight: Radius.circular(25),
                  topRight: Radius.circular(25),
                ),
                gradient: LinearGradient(
                  colors: [
                    AppColors.primary.withOpacity(0.9),
                    AppColors.primaryDark,
                  ],
                  begin: Alignment.topCenter,
                  end: Alignment.bottomCenter,
                ),
              ),
              margin: EdgeInsets.only(left: 20, right: 10),
              height: Get.width * 0.16,
              width: Get.width * 0.92,
              child: Center(
                child: Text(
                  title,
                  style:
                      Get.textTheme.headline5!.copyWith(color: AppColors.white),
                ),
              ),
            ),
          ),
          Positioned(
            top: 0,
            right: 0,
            child: InkWell(
              onTap: () {
                if (controller.indexPage.value == 0) {
                  Get.back();
                }
                if (controller.indexPage.value > 0) {
                  controller.indexPage.value -= 1;
                }
              },
              child: Container(
                margin: EdgeInsets.only(left: 5, right: 5),
                decoration: BoxDecoration(
                    borderRadius: BorderRadius.only(
                      bottomLeft: Radius.circular(12),
                      bottomRight: Radius.circular(12),
                      topRight: Radius.circular(12),
                    ),
                    color: AppColors.lightGreen,
                    boxShadow: [
                      BoxShadow(color: AppColors.grey.withOpacity(0.7))
                    ]),
                width: Get.width * 0.17,
                height: Get.width * 0.13,
                child: Material(
                  color: Colors.transparent,
                  child: Center(
                    child: Row(
                      crossAxisAlignment: CrossAxisAlignment.center,
                      children: [
                        SizedBox(width: 5),
                        Transform.rotate(
                          angle: TranslationService().isLocaleArabic()
                              ? (180 * math.pi / 180)
                              : 0,
                          child: Icon(
                            Icons.arrow_back_ios_new_rounded,
                            size: 17,
                          ),
                        ),
                        SizedBox(width: 5),
                        Text(
                          '$index/5',
                          style: Get.textTheme.headline6,
                        ),
                      ],
                    ),
                  ),
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

class SmallButton extends StatelessWidget {
  final VoidCallback onTap;
  final Color? color;
  final String title;
  final bool? border;
  final Color? fontColor;
  const SmallButton({
    Key? key,
    this.color,
    required this.onTap,
    required this.title,
    this.border,
    this.fontColor,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      width: Get.width * 0.3,
      height: Get.width * 0.13,
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(25),
        border: (border == true)
            ? Border.all(color: AppColors.primary.withOpacity(0.8))
            : Border.all(color: AppColors.grey.withOpacity(0.0)),
      ),
      child: Material(
        borderRadius: BorderRadius.circular(25),
        color: (color != null) ? color : AppColors.primary,
        child: InkWell(
          borderRadius: BorderRadius.circular(25),
          onTap: onTap,
          child: Center(
            child: Text(
              title.tr,
              style: Get.textTheme.headline5!.copyWith(
                  color: (fontColor == null) ? AppColors.white : fontColor),
            ),
          ),
        ),
      ),
    );
  }
}

class DeliveryRegistrationButton extends StatelessWidget {
  final VoidCallback onTap;
  final String title;
  const DeliveryRegistrationButton({
    Key? key,
    required this.onTap,
    required this.title,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: EdgeInsets.only(top: 7),
      width: Get.width * 0.8,
      height: Get.width * 0.13,
      decoration: BoxDecoration(
        border: Border.all(width: 0.8, color: AppColors.grey),
        borderRadius: BorderRadius.circular(25),
      ),
      child: Material(
        borderRadius: BorderRadius.circular(25),
        color: AppColors.backgroundColor,
        child: InkWell(
          borderRadius: BorderRadius.circular(25),
          onTap: onTap,
          child: Padding(
            padding: const EdgeInsets.all(10.0),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Text(
                  title.tr,
                  style: Get.textTheme.headline6!.copyWith(fontSize: 13),
                ),
                Icon(Icons.arrow_drop_down)
              ],
            ),
          ),
        ),
      ),
    );
  }
}

// ignore: must_be_immutable
class CustomizedTextField extends StatelessWidget {
  CustomizedTextField(
      {Key? key,
      required this.textFieldController,
      required this.title,
      required this.hint,
      required this.textInputType,
      this.subtitle,
      this.validator,
      this.codeKey,
      this.maxLength,
      this.leading})
      : super(key: key);
  TextEditingController textFieldController = TextEditingController();
  String title;
  String hint;
  String? subtitle;
  TextInputType textInputType;
  Widget? codeKey;
  int? maxLength;
  Widget? leading;
  final FormFieldValidator<String?>? validator;
  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Row(
          children: [
            leading ?? SizedBox(),
            leading == null
                ? SizedBox()
                : SizedBox(
                    width: 10.0,
                  ),
            Text(
              title.tr,
              style: Get.textTheme.headline5,
            ),
            SizedBox(
              width: 10.0,
            ),
            Text(
              (subtitle != null) ? subtitle!.tr : '',
              style: Get.textTheme.headline6,
            )
          ],
        ),
        SizedBox(
          height: 10.0,
        ),
        TextFormField(
          inputFormatters: [
            LengthLimitingTextInputFormatter(maxLength ?? 100),
          ],
          controller: textFieldController,
          validator: validator,
          keyboardType: textInputType,
          maxLines: 1,
          textAlign: TextAlign.start,
          style: Get.textTheme.headline6!.copyWith(
            color: AppColors.grey.withOpacity(0.8),
            fontWeight: FontWeight.w600,
          ),
          decoration: InputDecoration(
            contentPadding: EdgeInsets.only(top: 5, left: 15, right: 15),
            border: OutlineInputBorder(
              borderRadius: BorderRadius.circular(35.0),
            ),
            enabledBorder: OutlineInputBorder(
              borderSide: const BorderSide(color: Colors.grey, width: 0.9),
              borderRadius: BorderRadius.circular(35.0),
            ),
            focusedBorder: OutlineInputBorder(
              borderSide: const BorderSide(color: Colors.grey, width: 1.0),
              borderRadius: BorderRadius.circular(35.0),
            ),
            errorBorder: OutlineInputBorder(
              borderSide: const BorderSide(color: Colors.grey, width: 1.0),
              borderRadius: BorderRadius.circular(35.0),
            ),
            filled: true,
            fillColor: AppColors.white,
            hintText: hint.tr,
            hintStyle: Get.textTheme.headline6!.copyWith(
              color: AppColors.grey.withOpacity(0.4),
              fontWeight: FontWeight.w400,
            ),
            prefixIcon: codeKey,
          ),
        ),
      ],
    );
  }
}