e_receipt_mobile/lib/presentation/login/login_state.dart

42 lines
1.0 KiB
Dart
Raw Normal View History

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-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-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-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-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-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-02-13 19:46:02 +00:00
);
}
2026-03-30 09:40:06 +00:00
@override
String toString() {
return 'LoginState(isLoading: $isLoading, errorMessage: $errorMessage, successMessage: $successMessage, user: $user)';
}
2026-02-13 19:46:02 +00:00
}