import "react-native-gesture-handler";
import React, { useEffect } from "react";
import { NavigationContainer } from "@react-navigation/native";
import { Provider, useDispatch } from "react-redux";
import store from "./store";
import { ThemeProvider } from "@Styles";
import '@i18n'
import { useFonts } from "expo-font";
import RootNavigation from "./navigation/RootNavigation";
import { getData, getObjectData } from "./service/asyncStorage";
import {
JWT_REFRESH_TOKEN,
JWT_TOKEN,
LANGUAGE,
} from "@Constants/localStorage";
import { fetchUserSuccess } from "@Store/actions/login/loginActions";
import { addHeaderToken } from "./request";
import { useTranslation } from "react-i18next";
function App() {
const { i18n } = useTranslation();
const dispatch = useDispatch();
const initialSetup = async () => {
const token = await getData(JWT_TOKEN);
const refreshToken = await getData(JWT_REFRESH_TOKEN);
const language = await getObjectData(LANGUAGE);
if (language !== null) {
await i18n.changeLanguage(language.code);
}
if (token) {
addHeaderToken(token);
}
if (token !== undefined && refreshToken !== undefined) {
dispatch(fetchUserSuccess({ jwt: token, refreshToken }));
}
};
useEffect(() => {
initialSetup();
}, []);
return (
);
}
const AppWrapper = () => {
const [fontsLoaded] = useFonts({
"poppins-regular": require("./assets/fonts/Poppins-Regular.ttf"),
"poppins-semibold": require("./assets/fonts/Poppins-SemiBold.ttf"),
});
if (!fontsLoaded) {
return null;
}
return (
);
};
export default AppWrapper;