Context
Last updated
Was this helpful?
Last updated
Was this helpful?
import { createContext } from "react";
export const UserContext = createContext(null)
import { StatusBar } from 'expo-status-bar';
import { NativeBaseProvider } from 'native-base';
import { SafeAreaView, StyleSheet, Text, View } from 'react-native';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import Navigators from './src/Navigation/Navigators';
import {NavigationContainer} from "@react-navigation/native"
import { useState } from 'react';
import { UserContext } from './src/Context/UserContext';
export default function App() {
const [auth,setAuth]=useState({status:false})
return (
<SafeAreaProvider>
<NavigationContainer>
<NativeBaseProvider>
<UserContext.Provider value={{auth,setAuth}}>
<Navigators/>
</UserContext.Provider>
</NativeBaseProvider>
</NavigationContainer>
</SafeAreaProvider>
);
};
// Some code
import { Video } from 'expo-av'
import { getAuth, onAuthStateChanged, signInWithEmailAndPassword } from 'firebase/auth'
import { setDoc } from 'firebase/firestore'
import { Box, Button, Center, Heading, Input, Spinner, Text, useToast, View, VStack } from 'native-base'
import React from 'react'
import { useContext } from 'react'
import { useState } from 'react'
import { SafeAreaView } from 'react-native'
import { postImportirAuth } from '../../Api/importirApi'
import { authFirebase, db } from '../../Config/firebase'
import { UserContext } from '../../Context/UserContext'
function LoginScreen({navigation}) {
const [username,setUsername]=useState()
const [password,setPassword]=useState()
const [loading,setLoading]=useState(false)
const {auth,setAuth} = useContext(UserContext)
const toast =useToast()
const handleLogin= async ()=>{
setLoading(true)
try {
let userData = {}
const result = await postImportirAuth({email:username},'sign-in')
if(result.status===true){
userData.email=username
userData.token=result.data
userData.status=true
console.log(userData,'ini user data di handle login')
setAuth(userData)
setLoading(false)
}
} catch (error) {
setLoading(false)
toast.show({
description: error.message
})
}
setLoading(false)
}
return (<>
<Box>
<Box position='absolute' bottom='20'>
<Center width='md' bgColor='alpha'>
{/* <Text>{auth}</Text> */}
<Heading color='white' shadow='3'>Login</Heading>
<Input onChangeText={(e)=>setUsername(e)} type='text' mt='1' width='64' placeholder='email' bgColor='white'/>
<Input onChangeText={(e)=>setPassword(e)} type='password' mt='1' width='64' placeholder='password' bgColor='white'/>
{loading?
<Spinner/>
:
<Button width='64' mt='1' onPress={()=>handleLogin()}>Log in</Button>
}
<Text color='white' shadow='3' onPress={()=>navigation.navigate('Daftar')}>Belum memiliki akun? Daftar</Text>
</Center>
</Box>
</Box>
</> )
}
export default LoginScreen