import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:gap/gap.dart'; import 'package:tanami_app/shared/components/loader.dart'; import 'package:tanami_app/shared/components/toast_message.dart'; import '../../../../core/routes/route_name.dart'; import '../../../../core/routes/routes.dart'; import '../../../../core/styles/app_color.dart'; import '../../../../core/styles/app_text.dart'; import '../../../../shared/components/button_widget.dart'; import '../../../../shared/components/text_widget.dart'; import '../bloc/login_bloc.dart'; import '../bloc/login_event.dart'; import '../bloc/login_state.dart'; class BottomSection extends StatelessWidget { const BottomSection({super.key}); @override Widget build(BuildContext context) { return Column( children: [ const Gap(12), Align( alignment: Alignment.topRight, child: ButtonWidget().textBtn( function: () { goRouter.goNamed(RouteName.loginScreen); }, text: TextWidget().tex15W400(AppText.forgorPassword, clr: AppColor.forgotPassButtonColor, textDecoration: TextDecoration.underline)), ), const Gap(20), BlocConsumer( listener: (context, state) { if (state is LoginLoading) { Loader.loader(context); } else if (state is LoginSuccess) { goRouter.pop(); successToastMessage(context, "login successful !"); } else if (state is LoginFailure) { goRouter.pop(); errorToastMessage( context, state.error, ); } }, builder: (context, state) { bool isButtonEnabled = false; if (state is LoginFieldsState) { isButtonEnabled = state.areFieldsFilled; } return Container( margin: const EdgeInsets.symmetric( horizontal: 16, ), width: 1.sw, height: 56.h, child: ButtonWidget().elevatedBtn( txtClr: AppColor.inactiveBtnTxtColor, function: () { isButtonEnabled ? context.read().add( LoginSubmitted( context .read() .phoneNumberTextField .text, context .read() .passwordTextField .text, ""), ) : null; }, text: AppText.loginText, clr: isButtonEnabled ? AppColor.primaryColor : AppColor.inactiveBtnColor, ), ); }, ), const Gap(5), ButtonWidget().textBtn( function: () { goRouter.goNamed(RouteName.loginScreen); }, text: TextWidget().tex14W700(AppText.signUpText, clr: AppColor.textLabelColor, textDecoration: TextDecoration.underline)), ], ); } }