Files
penyaluran_app/lib/app/modules/dashboard/controllers/dashboard_controller.dart
Khafidh Fuadi 539fad3cda Perbarui tema dan styling dashboard dengan komponen kustom
- Tambahkan tema aplikasi di AppTheme
- Ganti font default dengan DM Sans dari aset
- Buat komponen kustom seperti StatisticCard, NavigationButton, dan StatusPill
- Perbarui desain drawer, bottom navigation, dan elemen dashboard
- Gunakan gradient dan warna tema yang konsisten
- Sederhanakan struktur kode dan styling
2025-03-08 15:54:24 +07:00

43 lines
1.2 KiB
Dart

import 'package:get/get.dart';
import 'package:penyaluran_app/app/data/models/user_model.dart';
import 'package:penyaluran_app/app/modules/auth/controllers/auth_controller.dart';
import 'package:penyaluran_app/app/services/supabase_service.dart';
class DashboardController extends GetxController {
final AuthController _authController = Get.find<AuthController>();
final SupabaseService _supabaseService = SupabaseService.to;
final RxBool isLoading = false.obs;
final Rx<Map<String, dynamic>?> roleData = Rx<Map<String, dynamic>?>(null);
// Indeks kategori yang dipilih untuk filter
final RxInt selectedCategoryIndex = 0.obs;
UserModel? get user => _authController.user;
String get role => user?.role ?? 'WARGA';
@override
void onInit() {
super.onInit();
loadRoleData();
}
Future<void> loadRoleData() async {
isLoading.value = true;
try {
if (user != null) {
final data = await _supabaseService.getRoleSpecificData(role);
roleData.value = data;
}
} catch (e) {
print('Error loading role data: $e');
} finally {
isLoading.value = false;
}
}
void logout() {
_authController.logout();
}
}