import React, { useState, useEffect } from 'react'; import { View, ActivityIndicator } from 'react-native'; import { createStackNavigator } from '@react-navigation/stack'; import { NavigationContainer } from '@react-navigation/native'; import { useLanguage } from '../contexts/LanguageContext'; import { KurdistanColors } from '../theme/colors'; // Screens import WelcomeScreen from '../screens/WelcomeScreen'; import SignInScreen from '../screens/SignInScreen'; import SignUpScreen from '../screens/SignUpScreen'; import BottomTabNavigator from './BottomTabNavigator'; export type RootStackParamList = { Welcome: undefined; SignIn: undefined; SignUp: undefined; MainApp: undefined; }; const Stack = createStackNavigator(); const AppNavigator: React.FC = () => { const { hasSelectedLanguage } = useLanguage(); const [isAuthenticated, setIsAuthenticated] = useState(false); const [isLoading, setIsLoading] = useState(true); useEffect(() => { // Check authentication status // TODO: Implement actual auth check setTimeout(() => { setIsLoading(false); }, 1000); }, []); const handleLanguageSelected = () => { // Navigate to sign in after language selection }; const handleSignIn = () => { setIsAuthenticated(true); }; const handleSignUp = () => { setIsAuthenticated(true); }; const _handleLogout = () => { setIsAuthenticated(false); }; if (isLoading) { return ( ); } return ( {!hasSelectedLanguage ? ( // Show welcome screen if language not selected {(props) => ( )} ) : !isAuthenticated ? ( // Show auth screens if not authenticated <> {(props) => ( props.navigation.navigate('SignUp')} /> )} {(props) => ( props.navigation.navigate('SignIn')} /> )} ) : ( // Show main app (bottom tabs) if authenticated )} ); }; export default AppNavigator;