feat:login page connected with backend
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import 'package:food_delivery_client/feature/auth/domain/usecases/login_usecase.dart';
|
||||
import 'package:food_delivery_client/food_delivery_client.dart';
|
||||
|
||||
part 'login_event.dart';
|
||||
@@ -8,11 +9,26 @@ part 'login_bloc.freezed.dart';
|
||||
|
||||
@injectable
|
||||
class LoginBloc extends Bloc<LoginEvent, LoginState> {
|
||||
LoginBloc() : super(const LoginState()) {
|
||||
final LoginUseCase _loginUseCase;
|
||||
|
||||
LoginBloc(this._loginUseCase) : super(const LoginState()) {
|
||||
on<_Login>(_onLogin);
|
||||
}
|
||||
|
||||
Future<void> _onLogin(_Login event, Emitter<LoginState> emit) async {
|
||||
emit(state.copyWith(status: RequestStatus.loading));
|
||||
|
||||
final response = await _loginUseCase.call(event.params);
|
||||
|
||||
response.fold(
|
||||
(l) {
|
||||
log("${l.errorMessage}");
|
||||
emit(state.copyWith(status: RequestStatus.error));
|
||||
},
|
||||
(r) {
|
||||
log(r.token);
|
||||
emit(state.copyWith(status: RequestStatus.loaded));
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,11 +122,11 @@ return login(_that);case _:
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function()? checked,TResult Function()? login,required TResult orElse(),}) {final _that = this;
|
||||
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function()? checked,TResult Function( LoginParams params)? login,required TResult orElse(),}) {final _that = this;
|
||||
switch (_that) {
|
||||
case _Checked() when checked != null:
|
||||
return checked();case _Login() when login != null:
|
||||
return login();case _:
|
||||
return login(_that.params);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
@@ -144,11 +144,11 @@ return login();case _:
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function() checked,required TResult Function() login,}) {final _that = this;
|
||||
@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function() checked,required TResult Function( LoginParams params) login,}) {final _that = this;
|
||||
switch (_that) {
|
||||
case _Checked():
|
||||
return checked();case _Login():
|
||||
return login();case _:
|
||||
return login(_that.params);case _:
|
||||
throw StateError('Unexpected subclass');
|
||||
|
||||
}
|
||||
@@ -165,11 +165,11 @@ return login();case _:
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function()? checked,TResult? Function()? login,}) {final _that = this;
|
||||
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function()? checked,TResult? Function( LoginParams params)? login,}) {final _that = this;
|
||||
switch (_that) {
|
||||
case _Checked() when checked != null:
|
||||
return checked();case _Login() when login != null:
|
||||
return login();case _:
|
||||
return login(_that.params);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
@@ -213,34 +213,68 @@ String toString() {
|
||||
|
||||
|
||||
class _Login implements LoginEvent {
|
||||
const _Login();
|
||||
const _Login(this.params);
|
||||
|
||||
|
||||
final LoginParams params;
|
||||
|
||||
|
||||
/// Create a copy of LoginEvent
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
_$LoginCopyWith<_Login> get copyWith => __$LoginCopyWithImpl<_Login>(this, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is _Login);
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is _Login&&(identical(other.params, params) || other.params == params));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => runtimeType.hashCode;
|
||||
int get hashCode => Object.hash(runtimeType,params);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'LoginEvent.login()';
|
||||
return 'LoginEvent.login(params: $params)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class _$LoginCopyWith<$Res> implements $LoginEventCopyWith<$Res> {
|
||||
factory _$LoginCopyWith(_Login value, $Res Function(_Login) _then) = __$LoginCopyWithImpl;
|
||||
@useResult
|
||||
$Res call({
|
||||
LoginParams params
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class __$LoginCopyWithImpl<$Res>
|
||||
implements _$LoginCopyWith<$Res> {
|
||||
__$LoginCopyWithImpl(this._self, this._then);
|
||||
|
||||
final _Login _self;
|
||||
final $Res Function(_Login) _then;
|
||||
|
||||
/// Create a copy of LoginEvent
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline') $Res call({Object? params = null,}) {
|
||||
return _then(_Login(
|
||||
null == params ? _self.params : params // ignore: cast_nullable_to_non_nullable
|
||||
as LoginParams,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$LoginState {
|
||||
|
||||
|
||||
@@ -4,5 +4,5 @@ part of 'login_bloc.dart';
|
||||
class LoginEvent with _$LoginEvent {
|
||||
const factory LoginEvent.checked() = _Checked;
|
||||
|
||||
const factory LoginEvent.login() = _Login;
|
||||
const factory LoginEvent.login(LoginParams params) = _Login;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user