55 lines
1.3 KiB
Dart
55 lines
1.3 KiB
Dart
import 'package:aman_kassa_flutter/core/models/smena.dart';
|
|
import 'package:aman_kassa_flutter/core/models/user.dart';
|
|
import 'package:meta/meta.dart';
|
|
|
|
@immutable
|
|
class UserState {
|
|
final bool isError;
|
|
final bool isLoading;
|
|
final bool isAuthenticated;
|
|
final LoginFormMessage loginFormMessage;
|
|
final User user;
|
|
final Smena smena;
|
|
|
|
UserState({
|
|
this.isError,
|
|
this.isLoading,
|
|
this.isAuthenticated,
|
|
this.user,
|
|
this.loginFormMessage,
|
|
this.smena
|
|
});
|
|
|
|
factory UserState.initial() => UserState(
|
|
isLoading: false,
|
|
isError: false,
|
|
isAuthenticated: false,
|
|
loginFormMessage: LoginFormMessage(),
|
|
smena: Smena(),
|
|
);
|
|
|
|
UserState copyWith({
|
|
@required bool isError,
|
|
@required bool isLoading,
|
|
@required User user,
|
|
@required bool isAuthenticated,
|
|
@required LoginFormMessage loginFormMessage,
|
|
@required Smena smena,
|
|
}) {
|
|
return UserState(
|
|
isError: isError ?? this.isError,
|
|
isLoading: isLoading ?? this.isLoading,
|
|
isAuthenticated: isAuthenticated ?? this.isAuthenticated,
|
|
user: user ?? this.user,
|
|
loginFormMessage: loginFormMessage ?? this.loginFormMessage,
|
|
smena: smena ?? this.smena,
|
|
);
|
|
}
|
|
}
|
|
|
|
class LoginFormMessage {
|
|
final String email;
|
|
final String password;
|
|
final String message;
|
|
LoginFormMessage({this.email, this.password, this.message});
|
|
} |