Perbarui model dan tampilan untuk mendukung fungsionalitas QR code dalam proses verifikasi penerima. Tambahkan properti qrCodeHash pada PenerimaPenyaluranModel dan implementasikan metode verifikasi QR code di DetailPenyaluranController. Modifikasi tampilan di WargaDetailPenerimaanView dan DetailPenyaluranPage untuk menampilkan QR code dan menambahkan fungsionalitas pemindaian QR code. Perbarui rute aplikasi untuk mendukung navigasi ke halaman pemindaian QR code dan konfirmasi penerima.

This commit is contained in:
Khafidh Fuadi
2025-03-19 13:11:24 +07:00
parent 984b8336f0
commit 0597f0aea0
19 changed files with 839 additions and 263 deletions

View File

@ -3,6 +3,7 @@ import 'package:get/get.dart';
import 'package:penyaluran_app/app/data/models/user_model.dart';
import 'package:penyaluran_app/app/data/providers/auth_provider.dart';
import 'package:penyaluran_app/app/routes/app_pages.dart';
import 'package:penyaluran_app/app/modules/warga/controllers/warga_dashboard_controller.dart';
class AuthController extends GetxController {
static AuthController get to => Get.find();
@ -265,14 +266,29 @@ class AuthController extends GetxController {
// Metode untuk logout
Future<void> logout() async {
try {
// Ambil semua controller yang mungkin perlu dibersihkan
try {
final wargaController = Get.find<WargaDashboardController>();
wargaController.penerimaPenyaluran.clear();
wargaController.pengajuanKelayakan.clear();
wargaController.pengaduan.clear();
} catch (e) {
// Jika controller tidak ditemukan, abaikan
print('Controller tidak ditemukan: $e');
}
// Logout dari Supabase
await _authProvider.signOut();
// Reset semua state
_user.value = null;
_hasLoadedProfile.value = false; // Reset flag saat logout
_hasLoadedProfile.value = false;
isWargaProfileComplete.value = false;
// Bersihkan dependensi form sebelum navigasi
clearFormDependencies();
// Navigasi ke halaman login
Get.offAllNamed(Routes.login);
} catch (e) {
Get.snackbar(