35 lines
1.2 KiB
Dart
35 lines
1.2 KiB
Dart
import '../../models/user_model.dart';
|
|
|
|
/// State untuk provider autentikasi ([authProvider]).
|
|
/// Merepresentasikan seluruh kemungkinan kondisi autentikasi yang dapat terjadi di aplikasi.
|
|
sealed class AuthState {
|
|
const AuthState();
|
|
}
|
|
|
|
/// Kondisi awal atau idle, di mana tidak ada aksi autentikasi yang sedang berjalan.
|
|
class AuthIdle extends AuthState {
|
|
const AuthIdle();
|
|
}
|
|
|
|
/// Kondisi loading, aktif ketika sistem sedang memproses login, pendaftaran akun (register),
|
|
/// atau pengecekan sesi aktif di latar belakang.
|
|
class AuthLoading extends AuthState {
|
|
const AuthLoading();
|
|
}
|
|
|
|
/// Kondisi sukses, dipicu ketika pengguna berhasil login atau mendaftar akun.
|
|
/// Membawa data profil pengguna berupa objek [UserModel].
|
|
class AuthSuccess extends AuthState {
|
|
/// Objek data pengguna yang sedang aktif login.
|
|
final UserModel user;
|
|
const AuthSuccess(this.user);
|
|
}
|
|
|
|
/// Kondisi gagal, dipicu ketika terjadi kesalahan selama proses autentikasi (misal: password salah).
|
|
/// Membawa pesan kesalahan ([message]) untuk ditampilkan ke antarmuka pengguna (UI).
|
|
class AuthError extends AuthState {
|
|
/// Pesan kegagalan/error yang ramah bagi pengguna.
|
|
final String message;
|
|
const AuthError(this.message);
|
|
}
|