2026-02-14 10:16:13 +00:00
|
|
|
import 'package:e_receipt_mobile/domain/entities/login_user.dart';
|
2026-03-30 09:40:06 +00:00
|
|
|
import 'package:flutter/foundation.dart';
|
2026-02-14 10:16:13 +00:00
|
|
|
|
2026-04-01 04:01:35 +00:00
|
|
|
enum LoginRequiredAction { passwordUpdateRequired }
|
|
|
|
|
|
2026-03-30 09:40:06 +00:00
|
|
|
@immutable
|
2026-02-13 19:46:02 +00:00
|
|
|
class LoginState {
|
|
|
|
|
const LoginState({
|
|
|
|
|
this.isLoading = false,
|
|
|
|
|
this.errorMessage,
|
|
|
|
|
this.successMessage,
|
2026-02-14 10:16:13 +00:00
|
|
|
this.user,
|
2026-04-01 04:01:35 +00:00
|
|
|
this.requiredAction,
|
|
|
|
|
this.requiredUserId,
|
2026-02-13 19:46:02 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
final bool isLoading;
|
|
|
|
|
final String? errorMessage;
|
|
|
|
|
final String? successMessage;
|
2026-02-14 10:16:13 +00:00
|
|
|
final LoginUser? user;
|
2026-04-01 04:01:35 +00:00
|
|
|
final LoginRequiredAction? requiredAction;
|
|
|
|
|
final String? requiredUserId;
|
2026-02-14 10:16:13 +00:00
|
|
|
|
2026-02-13 19:46:02 +00:00
|
|
|
LoginState copyWith({
|
|
|
|
|
bool? isLoading,
|
|
|
|
|
String? errorMessage,
|
|
|
|
|
String? successMessage,
|
2026-03-30 09:40:06 +00:00
|
|
|
LoginUser? user,
|
2026-04-01 04:01:35 +00:00
|
|
|
LoginRequiredAction? requiredAction,
|
|
|
|
|
String? requiredUserId,
|
2026-02-13 19:46:02 +00:00
|
|
|
bool clearError = false,
|
|
|
|
|
bool clearSuccess = false,
|
2026-03-30 09:40:06 +00:00
|
|
|
bool clearUser = false,
|
2026-04-01 04:01:35 +00:00
|
|
|
bool clearRequired = false,
|
2026-02-13 19:46:02 +00:00
|
|
|
}) {
|
|
|
|
|
return LoginState(
|
|
|
|
|
isLoading: isLoading ?? this.isLoading,
|
|
|
|
|
errorMessage: clearError ? null : errorMessage ?? this.errorMessage,
|
|
|
|
|
successMessage: clearSuccess
|
|
|
|
|
? null
|
|
|
|
|
: successMessage ?? this.successMessage,
|
2026-03-30 09:40:06 +00:00
|
|
|
user: clearUser ? null : user ?? this.user,
|
2026-04-01 04:01:35 +00:00
|
|
|
requiredAction: clearRequired ? null : requiredAction ?? this.requiredAction,
|
|
|
|
|
requiredUserId: clearRequired ? null : requiredUserId ?? this.requiredUserId,
|
2026-02-13 19:46:02 +00:00
|
|
|
);
|
|
|
|
|
}
|
2026-03-30 09:40:06 +00:00
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String toString() {
|
2026-04-01 04:01:35 +00:00
|
|
|
return 'LoginState(isLoading: $isLoading, errorMessage: $errorMessage, successMessage: $successMessage, user: $user, requiredAction: $requiredAction, requiredUserId: $requiredUserId)';
|
2026-03-30 09:40:06 +00:00
|
|
|
}
|
2026-02-13 19:46:02 +00:00
|
|
|
}
|