Skip to content
Snippets Groups Projects

Draft: Master

Merged Thi Nguyen requested to merge master into feature/update-08.01
Files
4
+ 30
30
import React, { useState, useLayoutEffect } from "react";
import React, { useState, useLayoutEffect, useEffect } from "react";
import { auth, database } from "../config/firebase";
import { collection, query, onSnapshot, where, and, addDoc } from "firebase/firestore";
import { collection, query, onSnapshot, where, and, addDoc, getDocs } from "firebase/firestore";
import { createStackNavigator } from "@react-navigation/stack";
import Chat from "./tabs/Chat";
import Home from "./ScreenNavigator";
import ChatUid from "./tabs/ChatUid";
import CatownerHome from "./tabs/CatownerHome";
import ChatList from "./tabs/ChatList";
@@ -11,11 +10,12 @@ import Catsitter from "./tabs/Catsitter";
import CatsitterHome from "./cat-sitter/CatsitterHome";
import CatsitterSetting from "./cat-sitter/CatsitterSetting";
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { View, Text } from "react-native";
const Stack = createStackNavigator();
const Tab = createBottomTabNavigator();
const Home = () => {
const ScreenNavigator = () => {
//Get current profile
const [userProfile, setUserProfile] = useState({});
useLayoutEffect(() => {
@@ -27,15 +27,13 @@ const Home = () => {
};
const collectionRef = collection(database, "profiles");
const q = query(collectionRef, and(where("userId", "==", id)),);
const unsubscribe = onSnapshot(q, (querySnapshot) => {
if (querySnapshot.docs.length > 0) {
setUserProfile(querySnapshot.docs[0].data())
getDocs(q).then((data) => {
if (data.docs.length > 0) {
setUserProfile(data.docs[0].data())
} else {
createUserProfile(auth?.currentUser?.uid)
}
});
return unsubscribe;
}, []);
const createUserProfile = (userId) => {
@@ -45,29 +43,31 @@ const Home = () => {
role: "cat-owner"
});
}
if (userProfile.role == "cat-owner") {
return (
<Stack.Navigator defaultScreenOptions={Home}>
<Stack.Screen name="Home" component={Home} />
<Stack.Screen name="CatownerHome" component={CatownerHome} />
<Stack.Screen name="Catsitter" component={Catsitter} />
<Stack.Screen name="Chat" component={ChatList} />
<Stack.Screen name="ChatDetail" component={Chat} />
<Stack.Screen name="ChatWithUser" component={ChatUid} />
</Stack.Navigator>
)
}
if (userProfile.role == "cat-owner") return (
<Stack.Navigator defaultScreenOptions={CatownerHome}>
<Stack.Screen name="CatownerHome" component={CatownerHome} />
<Stack.Screen name="Catsitter" component={Catsitter} />
<Stack.Screen name="Chat" component={ChatList} />
<Stack.Screen name="ChatDetail" component={Chat} />
<Stack.Screen name="ChatWithUser" component={ChatUid} />
</Stack.Navigator>
)
if (userProfile.role == "cat-sitter") return (<Tab.Navigator>
{/* Cat sitter stack */}
<Tab.Screen name="CatsitterHome" component={CatsitterHome} options={{
tabBarLabel: "Home",
}} />
<Tab.Screen name="CatsitterSetting" component={CatsitterSetting} options={{
tabBarLabel: "Setting",
}} />
</Tab.Navigator>
)
return (
<Tab.Navigator defaultScreenOptions={CatsitterHome}>
{/* Cat sitter stack */}
<Tab.Screen name="CatsitterHome" component={CatsitterHome} />
<Tab.Screen name="CatsitterSetting" component={CatsitterSetting} />
</Tab.Navigator>
<View>
<Text>Loading screen</Text>
</View>
)
}
export default Home
\ No newline at end of file
export default ScreenNavigator
\ No newline at end of file
Loading