Auth screen layout

This commit is contained in:
2024-01-09 14:09:29 +03:00
parent dc7c993c97
commit 288518f12a
10 changed files with 249 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import '/core/app_export.dart';
import 'package:eatvio_app/presentation/auth/auth_screen/models/auth_model.dart';
part 'auth_event.dart';
part 'auth_state.dart';
/// A bloc that manages the state of a Auth according to the event that is dispatched to it.
class AuthBloc extends Bloc<AuthEvent, AuthState> {
AuthBloc(AuthState initialState) : super(initialState) {
on<AuthInitialEvent>(_onInitialize);
}
_onInitialize(
AuthInitialEvent event,
Emitter<AuthState> emit,
) async {
emit(state.copyWith(
emailController: TextEditingController(),
passwordController: TextEditingController()));
}
}

View File

@@ -0,0 +1,16 @@
// ignore_for_file: must_be_immutable
part of 'auth_bloc.dart';
/// Abstract class for all events that can be dispatched from the
///Credentials widget.
///
/// Events must be immutable and implement the [Equatable] interface.
@immutable
abstract class AuthEvent extends Equatable {}
/// Event that is dispatched when the Credentials widget is first created.
class AuthInitialEvent extends AuthEvent {
@override
List<Object?> get props => [];
}

View File

@@ -0,0 +1,36 @@
// ignore_for_file: must_be_immutable
part of 'auth_bloc.dart';
/// Represents the state of Auth in the application.
class AuthState extends Equatable {
AuthState({
this.emailController,
this.passwordController,
this.authModelObj,
});
TextEditingController? emailController;
TextEditingController? passwordController;
AuthModel? authModelObj;
@override
List<Object?> get props => [
emailController,
passwordController,
authModelObj,
];
AuthState copyWith({
TextEditingController? emailController,
TextEditingController? passwordController,
AuthModel? authModelObj,
}) {
return AuthState(
emailController: emailController ?? this.emailController,
passwordController: passwordController ?? this.passwordController,
authModelObj: authModelObj ?? this.authModelObj,
);
}
}