import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'dart:async'; class SplashView extends StatefulWidget { const SplashView({super.key}); @override State createState() => _SplashViewState(); } class _SplashViewState extends State with SingleTickerProviderStateMixin { late AnimationController _controller; late Animation _fadeAnim; late Animation _scaleAnim; @override void initState() { super.initState(); /// ✅ Animation setup _controller = AnimationController( vsync: this, duration: const Duration(milliseconds: 1500), ); _fadeAnim = Tween(begin: 0, end: 1).animate( CurvedAnimation(parent: _controller, curve: Curves.easeIn), ); _scaleAnim = Tween(begin: 0.7, end: 1).animate( CurvedAnimation( parent: _controller, curve: Curves.easeOutBack, ), ); _controller.forward(); _navigate(); } void _navigate() { Timer(const Duration(seconds: 2), () { final user = FirebaseAuth.instance.currentUser; if (user != null) { Get.offAllNamed('/home'); } else { Get.offAllNamed('/login'); } }); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { final size = MediaQuery.of(context).size; return Scaffold( body: Container( width: size.width, height: size.height, decoration: const BoxDecoration( gradient: LinearGradient( colors: [ Color(0xFF1976D2), Color(0xFF42A5F5), ], begin: Alignment.topCenter, end: Alignment.bottomCenter, ), ), child: Center( child: FadeTransition( opacity: _fadeAnim, child: ScaleTransition( scale: _scaleAnim, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ /// ✅ LOGO DARI ASSETS Image.asset( "assets/images/praresi_logo.png", width: 140, ), const SizedBox(height: 24), const Text( "PraResi", style: TextStyle( color: Colors.white, fontSize: 28, fontWeight: FontWeight.bold, letterSpacing: 1.2, ), ), const SizedBox(height: 30), const CircularProgressIndicator( color: Colors.white, ), ], ), ), ), ), ), ); } }