1import 'package:flutter/material.dart';
2import 'package:flutter_bloc/flutter_bloc.dart';
4import '../../../../../core/constants/assets.dart';
5import '../../../../../core/ui/widgets/custom_scaffold.dart';
6import '../../../../../core/ui/widgets/custom_snackbar.dart';
7import '../../../../../core/ui/widgets/language_selector.dart';
8import '../../../domain/entities/credentials_entity.dart';
9import '../../bloc/authentication_bloc/authentication_bloc.dart';
10import 'views/signin_form_view.dart';
11import 'views/signin_with_biometric_view.dart';
12import 'package:flutter_svg/flutter_svg.dart';
13import 'package:flutter_screenutil/flutter_screenutil.dart';
19 Widget
build(BuildContext context) {
20 return BlocConsumer<AuthenticationBloc, AuthenticationState>(
22 listener: (context,
state) {
24 if (
state.credentials != null &&
25 state.credentials?.email != null &&
26 state.credentials?.password != null) {
27 context.read<AuthenticationBloc>().add(
30 email:
state.credentials!.email!,
31 password:
state.credentials!.password!,
41 state.failure.message,
45 builder: (context,
state) => CustomScaffold(
52 child: SingleChildScrollView(
56 padding: EdgeInsets.symmetric(vertical: 10.sp),
57 child: SvgPicture.asset(
59 colorFilter: ColorFilter.mode(
60 Theme.of(context).colorScheme.onSurface,
67 SigninWithBiometricView(),
75 padding: EdgeInsets.only(bottom: 16.sp),
77 mainAxisAlignment: MainAxisAlignment.center,
87 const LanguageSelector(),
const SignInEvent({required this.reqEntity})
sealed class AuthenticationEvent extends Equatable reqEntity
const CredentialsLoadedState({required this.credentials})
const AuthenticationFailureState({required this.failure})
static ScaffoldFeatureController< SnackBar, SnackBarClosedReason > display(final BuildContext context, final Color color, final String message,)
style Column(crossAxisAlignment:CrossAxisAlignment.end, children:[Container(padding:EdgeInsets.symmetric(horizontal:8.w, vertical:4.h), decoration:BoxDecoration(color:ColorPalette.tiffanyBlue.withValues(alpha:0.1), borderRadius:BorderRadius.circular(12),), child:Text(collection.type ?? '', style:Theme.of(context).textTheme.bodySmall?.copyWith(color:ColorPalette.tiffanyBlue, fontWeight:FontWeight.bold,),),),],)