import "react-native-gesture-handler"; import React from "react"; import { useEffect, useState } from "react"; import Toast from "react-native-toast-message"; import { Alert, ActivityIndicator, View } from "react-native"; import { userApi } from "./app/services/api/userApi"; import useUserStore from "./app/store/user"; import { NavigationContainer } from "@react-navigation/native"; import { createNativeStackNavigator } from "@react-navigation/native-stack"; import { CountrySelect } from "./app/screens/CountrySelect"; import { MainApp } from "./app/screens/MainApp"; import { LoginScreen } from "./app/screens/LoginScreen"; import { EmailLoginScreen } from "./app/screens/EmailLoginScreen"; import { GoogleScreen } from "./app/screens/login/Google"; import "./app/i18n"; import { TabNavigator } from "./app/navigation/TabNavigator"; import { AuthProvider, useAuth } from "./app/contexts/AuthContext"; import { SearchScreen } from "./app/screens/SearchScreen"; import { SearchResultScreen } from "./app/screens/SearchResultScreen"; import { ProductDetailScreen } from "./app/screens/ProductDetailScreen"; import { BalanceScreen } from "./app/screens/BalanceScreen"; import { ShippingDetailsSection } from "./app/screens/banner/ShippingDetailsSection"; import { GestureHandlerRootView } from "react-native-gesture-handler"; import { InquiryScreen } from "./app/screens/banner/InquiryScreen"; import { Recipient } from "./app/screens/Recipient/Recipient"; import { AddRess } from "./app/screens/Recipient/Address"; import { SettingList } from "./app/screens/setting/SettingList"; import { CountrySetting } from "./app/screens/setting/CountrySetting"; import { MySetting } from "./app/services/api/setting"; import { MyAddress } from "./app/screens/setting/MyAddress"; import { CartScreen } from "./app/screens/CartScreen"; import { PaymentSuccessScreen } from "./app/screens/pay/PaySuccess"; import { MyAccount } from "./app/screens/MyAccount/myAccount"; import { ConfirmOrder } from "./app/screens/Recipient/ConfirmOrder"; import { Pay } from "./app/screens/pay/Pay"; import { Status } from "./app/screens/productStatus/Status"; import { OrderDetails } from "./app/screens/productStatus/OrderDatails"; import { TikTokScreen } from "./app/screens/banner/TikTokScreen"; import { BrowseHistoryScreen } from "./app/screens/function/BrowseHistoryScreen"; import { Collection } from "./app/screens/function/Collection"; import AsyncStorage from "@react-native-async-storage/async-storage"; import { MemberIntroduction } from "./app/screens/MemberScreen/MemberIntroduction"; import { CompanyScreen } from "./app/screens/MemberScreen/CompanyScreen"; import { PreviewAddress } from "./app/screens/previewOrder/PreviewAddress"; import { AddressList } from "./app/screens/address/AddressList"; import { AddAddress } from "./app/screens/address/AddAddress"; import { EditAddress } from "./app/screens/address/EditAddress"; import { PaymentMethod } from "./app/screens/previewOrder/PaymentMethod"; import { ShippingFee } from "./app/screens/previewOrder/ShippingFee"; import { PreviewOrder } from "./app/screens/previewOrder/perviewOrder"; export type RootStackParamList = { CountrySelect: undefined; MainApp: undefined; Login: undefined; EmailLogin: undefined; MainTabs: undefined; Search: undefined; SearchResult: { keyword: string }; ProductDetail: { productId: string; searchKeyword?: string }; Balance: undefined; ShippingDetailsSection: undefined; InquiryScreen: undefined; Recipient: { items: { cart_item_id: number }[] }; AddRess: undefined; SettingList: undefined; CountrySetting: { mySetting?: MySetting }; MyAddress: undefined; CartScreen: undefined; PaymentSuccessScreen: undefined; MyAccount: undefined; Google: undefined; ConfirmOrder: undefined; Pay: undefined; Status: undefined; OrderDetails: undefined; TikTokScreen: undefined; BrowseHistoryScreen: undefined; Collection: undefined; MemberIntroduction: undefined; CompanyScreen: undefined; PreviewAddress: undefined; AddressList: undefined; AddAddress: undefined; EditAddress: undefined; PaymentMethod: undefined; ShippingFee: undefined; PreviewOrder: undefined; }; const Stack = createNativeStackNavigator(); function AppContent() { const { setUser } = useUserStore(); const { login, logout } = useAuth(); const [isLoading, setIsLoading] = useState(true); const getUserInfo = async () => { const token = await AsyncStorage.getItem("token"); if (token) { try { const user = await userApi.getProfile(); setUser(user); login(); } catch (error) { logout(); } } setIsLoading(false); }; useEffect(() => { getUserInfo(); }, []); if (isLoading) { return ( ); } return ( ); } export default function App() { return ( ); }