Files
penyaluran_app/lib/app/modules/splash/views/splash_view.dart
Khafidh Fuadi 9995239115 Tambahkan dukungan image picker dan izin kamera untuk upload bukti serah terima
- Tambahkan paket image_picker untuk mengambil foto
- Perbarui AndroidManifest.xml dan Info.plist untuk izin kamera dan galeri
- Tambahkan metode pickfotoBuktiSerahTerima di PenitipanBantuanController
- Buat dialog verifikasi dengan fitur upload foto bukti serah terima
- Perbarui model PenitipanBantuanModel untuk mendukung foto bukti
- Integrasikan upload file ke Supabase storage
2025-03-12 07:00:27 +07:00

91 lines
2.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:penyaluran_app/app/modules/auth/controllers/auth_controller.dart';
import 'package:penyaluran_app/app/theme/app_theme.dart';
class SplashView extends StatefulWidget {
const SplashView({super.key});
@override
State<SplashView> createState() => _SplashViewState();
}
class _SplashViewState extends State<SplashView> {
@override
void initState() {
super.initState();
_checkAuthAndNavigate();
}
_checkAuthAndNavigate() async {
// Tunggu 2 detik untuk menampilkan splash screen
await Future.delayed(const Duration(seconds: 2));
// Dapatkan AuthController dan periksa status autentikasi
final AuthController authController = Get.find<AuthController>();
await authController.checkAuthStatus();
// Navigasi akan ditangani oleh AuthController
// Tidak perlu navigasi manual di sini
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration: BoxDecoration(
gradient: AppTheme.primaryGradient,
),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
'assets/images/logo.png',
width: 120,
height: 120,
errorBuilder: (context, error, stackTrace) {
return Container(
width: 120,
height: 120,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: const Icon(
Icons.people,
size: 60,
color: AppTheme.primaryColor,
),
);
},
),
const SizedBox(height: 24),
const Text(
'Aplikasi Penyaluran',
style: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
color: Colors.white,
),
),
const SizedBox(height: 8),
const Text(
'Bantuan Sosial',
style: TextStyle(
fontSize: 18,
color: Colors.white,
),
),
const SizedBox(height: 48),
const CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.white),
),
],
),
),
),
);
}
}