Я использовал шаблон блока для создания функции входа в систему в моем приложении flutter, и я использовал плагин (flutter_bloc) ›››› все работает хорошо, но мой вопрос в том, должен ли я создавать отдельный блок для (выхода) или нет, в моем случае я просто добавляю события и состояние для выхода из системы с помощью (auth bloc):
event: import 'package: equatable / equatable.dart';
abstract class AuthEvents extends Equatable{}
class StartedEvent extends AuthEvents {
@override
List<Object> get props => [];
}
class SignOutEvent extends AuthEvents{
@override
List<Object> get props => [];
}
class AuthLoggedInEvent extends AuthEvents {
final String token;
AuthLoggedInEvent({this.token});
@override
String toString() => 'LoggedIn { token: $token }';
@override
List<Object> get props => [token];
}
штат:
class AuthStates extends Equatable{
@override
List<Object> get props => [];
}
class AuthInitialState extends AuthStates {
}
class AuthenticatedState extends AuthStates {
User user;
AuthenticatedState({this.user});
}
class UnauthenticatedState extends AuthStates {}
class LogOutSuccessState extends AuthStates{}
блок:
@override
Stream<AuthStates> mapEventToState(AuthEvents event) async*{
try {
if(event is StartedEvent) {
var loggedIn = repo.isUserSignedIn();
if(loggedIn) {
User user = repo.getUser();
yield AuthenticatedState(user: user);
} else {
yield UnauthenticatedState();
}
} else if(event is SignOutEvent){
repo.signOut();
yield LogOutSuccessState();
yield UnauthenticatedState();
}
это хороший подход? или лучше создать для него отдельный блок? Благодарность