import MainTabNavigator from './src/navigation/AppNavigator' import store from './src/redux/store' import { Provider } from 'react-redux' import LoaderUserApi from './src/services/userServices/loaderUserApi' import ManagerUser from './src/services/userServices/ManagerUser' import FakeSaverUser from './src/services/userServices/fakeSaverUser' import { View, Text, Button } from 'react-native'; import React, { useCallback } from 'react'; import { useUserStore } from './userContext'; import stylesScreen from './src/screens/style/screens.style' import { User } from './src/core/User/user'; import { stat } from 'fs'; import StubUser from './src/services/userServices/stub'; export const MANAGER_USER = new ManagerUser(new LoaderUserApi, new FakeSaverUser); export default function App() { const setUser = useUserStore((state) => state.setUser); const resetUser = useUserStore((state) => state.resetUser); const handleUserConnect = useCallback(async () => { /* fetch(GET_USER_URL) .then((res) => { if (res.status === 200) { return res.json(); } throw new Error("Bad User"); }) .then((user) => { setUser(user); }) .catch((err) => { console.log(err); }); */ await MANAGER_USER.getLoaderUser().loadByID("14").then((res) => { MANAGER_USER.setCurrentUser(res); console.log(res); }); setUser(MANAGER_USER.getCurrentUser()); }, []); const handleUserLogout = useCallback(async () => { // TODO: Call logout API MANAGER_USER.setCurrentUser(null); resetUser(); }, []); const handleUserChange = useCallback(async () => { MANAGER_USER.getCurrentUser()?.setCurrentCoins(MANAGER_USER.getCurrentUser()?.getCurrentCoins()+100); setUser(MANAGER_USER.getCurrentUser()); }, []); return ( ); } const AUser = () => { const userName = useUserStore((state) => state.user?.getUsername()); const test = useUserStore((state) => state.user?.getCurrentCoins()); return userName === undefined ? ( Not Connected ) : ( Hello {userName} Money {test} ); };