some stuff

This commit is contained in:
Loewy 2024-02-07 22:06:19 -08:00
parent 37004a1f6e
commit f849780aac
3 changed files with 26 additions and 23 deletions

View File

@ -1,6 +1,12 @@
import { DEV_USER_ID } from "@env";
import { FirebaseAuthTypes } from "@react-native-firebase/auth";
import React, { createContext, useContext, useEffect, useState } from "react";
import React, {
createContext,
useCallback,
useContext,
useEffect,
useState,
} from "react";
import { handleSignOut, onAuthStateChanged } from "../auth";
import { useAuthHeader } from "../graphql/client";
@ -24,16 +30,20 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
const [isLoggedIn, setIsLoggedIn] = useState<boolean>(false);
const [isLoading, setIsLoading] = useState<boolean>(true); // this is for a LoadingContext (auth, app reloads, foreground etc)
const _completeAuthentication = (
user: FirebaseAuthTypes.User,
token: string,
isLoggedIn: boolean,
) => {
setAuthHeader({ key: "Authorization", value: token });
setContextUser(user);
setIsLoggedIn(isLoggedIn);
setIsLoading(false);
};
const _completeAuthentication = useCallback(
(
user: FirebaseAuthTypes.User,
token: string,
isLoggedIn: boolean,
tokenType: "user_id" | "Authorization" = "Authorization",
) => {
setAuthHeader({ key: tokenType, value: token });
setContextUser(user);
setIsLoggedIn(isLoggedIn);
setIsLoading(false);
},
[setAuthHeader],
);
const authStateChangeCallback = async (user: FirebaseAuthTypes.User) => {
if (user) {
@ -61,13 +71,11 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
const setAuthAsync = async () => {
if (DEV_USER_ID) {
console.log("Setting fake authorization user to: ", DEV_USER_ID);
setAuthHeader({ key: "user_id", value: DEV_USER_ID });
setIsLoggedIn(true);
setIsLoading(false);
_completeAuthentication(null, DEV_USER_ID, true, "user_id");
}
};
setAuthAsync();
}, [setAuthHeader]);
}, [_completeAuthentication]);
const logOut = async () => {
await handleSignOut();

View File

@ -1,4 +1,3 @@
// Login.tsx
import { FirebaseAuthTypes } from "@react-native-firebase/auth";
import React, { useState } from "react";
import {

View File

@ -13,12 +13,8 @@ export default function ProfileScreen() {
{user && (
<>
<View style={styles.userInfo}>
<Text>
Display name: {user?.displayName}
</Text>
<Text>
Phone number: {user?.phoneNumber}
</Text>
<Text>Display name: {user?.displayName}</Text>
<Text>Phone number: {user?.phoneNumber}</Text>
</View>
<View style={styles.signOutButton}>
<SignOutButton />
@ -40,6 +36,6 @@ const styles = StyleSheet.create({
},
signOutButton: {
paddingBottom: "5%",
paddingHorizontal: "25%"
paddingHorizontal: "25%",
},
});