1import 'package:easy_localization/easy_localization.dart';
2import 'package:flutter/material.dart';
3import 'package:flutter_bloc/flutter_bloc.dart';
4import 'package:flutter_screenutil/flutter_screenutil.dart';
5import '../../../../../../core/ui/widgets/custom_text_form_field.dart';
6import '../../../../domain/entities/credentials_entity.dart';
7import '../../../bloc/authentication_bloc/authentication_bloc.dart';
13 State<SignInFormView>
createState() => _SignInFormViewState();
16class _SignInFormViewState
extends State<SignInFormView> {
26 context.read<AuthenticationBloc>().add(LoadEmailEvent());
30 if (
_formKey.currentState!.validate()) {
31 context.read<AuthenticationBloc>().add(
43 Widget
build(BuildContext context) {
44 return BlocListener<AuthenticationBloc, AuthenticationState>(
45 listener: (context, state) {
46 if (state is EmailLoadedState) {
50 child: SingleChildScrollView(
58 mainAxisAlignment: MainAxisAlignment.center,
63 crossAxisAlignment: CrossAxisAlignment.center,
66 hintText:
'login.email'.tr(),
69 if (value == null || value.isEmpty) {
70 return 'Email is required';
74 suffixIcon:
const Icon(Icons.mail_outline),
78 hintText:
'login.password'.tr(),
81 if (value == null || value.isEmpty) {
82 return 'Password is required';
94 _isObscure ? Icons.lock_outlined : Icons.lock_open_outlined,
109 width: MediaQuery.of(context).size.width,
110 child: ElevatedButton(
override void initState()
class App extends StatefulWidget build(BuildContext context)
const SignInEvent({required this.reqEntity})
sealed class AuthenticationEvent extends Equatable reqEntity
style Text( '${ 'scheduling.reference'.tr()}:${collection.internalCode}', style:Theme.of(context).textTheme.bodySmall,)
style SizedBox(height:2.h)
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,),),),],)