import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:go_router/go_router.dart'; import 'package:google_fonts/google_fonts.dart'; import '../../core/services/biometric_service.dart'; class SplashScreen extends StatefulWidget { const SplashScreen({super.key}); @override State createState() => _SplashScreenState(); } class _SplashScreenState extends State with SingleTickerProviderStateMixin { late AnimationController _controller; late Animation _animation; @override void initState() { super.initState(); _controller = AnimationController( vsync: this, duration: const Duration(milliseconds: 1800), ); _animation = CurvedAnimation( parent: _controller, curve: Curves.easeInOut, ); _controller.forward(); _controller.addStatusListener((status) async { if (status == AnimationStatus.completed) { if (mounted) { final isEnabled = await BiometricService.isEnabled(); if (isEnabled) { final authenticated = await BiometricService.authenticate(); if (!authenticated) { SystemNavigator.pop(); return; } } context.go('/dashboard'); } } }); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: const Color(0xFF0F0F14), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( 'Casha', style: GoogleFonts.poppins( fontSize: 42, fontWeight: FontWeight.bold, color: const Color(0xFF7C6DED), ), ), const SizedBox(height: 24), SizedBox( width: 120, child: AnimatedBuilder( animation: _animation, builder: (context, child) { return LinearProgressIndicator( value: _animation.value, backgroundColor: Colors.white.withOpacity(0.1), valueColor: const AlwaysStoppedAnimation(Color(0xFF7C6DED)), minHeight: 2, ); }, ), ), ], ), ), ); } }