Aidra Connect 10.0.2+16
Aidra Connect Mobile Application
Loading...
Searching...
No Matches
signin_screen.dart
Go to the documentation of this file.
1import 'package:connect/features/authentication/domain/entities/credentials_entity.dart';
2import 'package:connect/features/authentication/presentation/screens/signin_screen/views/signin_form_view.dart';
3import 'package:connect/features/authentication/presentation/screens/signin_screen/views/signin_with_biometric_view.dart';
4import 'package:flutter/material.dart';
5import 'package:flutter_bloc/flutter_bloc.dart';
6
7import '../../../../../core/ui/widgets/custom_scaffold.dart';
8import '../../../../../core/ui/widgets/custom_snackbar.dart';
9import '../../logic/authentication_bloc/authentication_bloc.dart';
10
11class SignInScreen extends StatelessWidget {
12 const SignInScreen({super.key});
13
14 @override
15 Widget build(BuildContext context) {
16 return BlocConsumer<AuthenticationBloc, AuthenticationState>(
17 listenWhen: (previous, current) =>
18 current is AuthenticationFailureState ||
19 current is CredentialsLoadedState,
20 listener: (context, state) {
21 if (state is CredentialsLoadedState) {
22 if (state.credentials != null &&
23 state.credentials?.email != null &&
24 state.credentials?.password != null) {
25 context.read<AuthenticationBloc>().add(
28 email: state.credentials!.email!,
29 password: state.credentials!.password!,
30 ),
31 ),
32 );
33 }
34 }
35 if (state is AuthenticationFailureState) {
37 context,
38 state.failure.color,
39 state.failure.message,
40 );
41 }
42 },
43 builder: (context, state) => CustomScaffold(
44 isLoading: state is AuthenticatingState,
45 body: const SafeArea(
46 child: SingleChildScrollView(
47 child: Column(
48 children: [
49 SignInFormView(),
50 SigninWithBiometricView(),
51 ],
52 ),
53 ),
54 ),
55 ),
56 );
57 }
58}
const SignInEvent({required this.reqEntity})
sealed class AuthenticationEvent extends Equatable reqEntity
const CredentialsLoadedState({required this.credentials})
const AuthenticationFailureState({required this.failure})
static display(final BuildContext context, final Color color, final String message,)
final Widget child
override Widget build(BuildContext context)
const SignInScreen({super.key})