From cd7ba8e9d5b8a94de3d89715ed6fdcc289c084d2 Mon Sep 17 00:00:00 2001 From: Mohammed Al-Samarraie Date: Sun, 18 Jan 2026 19:54:07 +0300 Subject: [PATCH] =?UTF-8?q?=D9=A2=D9=A2=D9=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/screens/splash_screen.dart | 27 ++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/lib/presentation/screens/splash_screen.dart b/lib/presentation/screens/splash_screen.dart index 957e81a..1bdb4da 100644 --- a/lib/presentation/screens/splash_screen.dart +++ b/lib/presentation/screens/splash_screen.dart @@ -1,6 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart'; import 'onboarding_screen.dart'; +import 'main_screen.dart'; +import '../../core/di/injection_container.dart'; +import '../../data/datasources/user_local_data_source.dart'; class SplashScreen extends StatefulWidget { const SplashScreen({super.key}); @@ -14,13 +17,31 @@ class _SplashScreenState extends State { void initState() { super.initState(); FlutterNativeSplash.remove(); + _checkTokenAndNavigate(); + } - Future.delayed(const Duration(seconds: 2), () { + Future _checkTokenAndNavigate() async { + // Wait for splash screen display + await Future.delayed(const Duration(seconds: 2)); + + if (!mounted) return; + + // Check if token exists in cache + final token = await sl().getCachedUserToken(); + + if (token != null && token.isNotEmpty) { + // Token exists, navigate directly to MainPage Navigator.pushReplacement( context, - MaterialPageRoute(builder: (_) => OnboardingScreen()), + MaterialPageRoute(builder: (_) => const MainPage()), ); - }); + } else { + // No token, navigate to OnboardingScreen + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (_) => const OnboardingScreen()), + ); + } } @override