diff --git a/app/(tabs)/home.tsx b/app/(tabs)/home.tsx
index 8e60ab6..7d27cc4 100644
--- a/app/(tabs)/home.tsx
+++ b/app/(tabs)/home.tsx
@@ -6,25 +6,24 @@ import Constants from 'expo-constants'; //pour connaître la taille de la barre
import React from 'react';
import { StyleSheet, View } from 'react-native';
import { useChantier } from '../ContextChantier';
-
+import { useUser } from '../ContextUser';
export default function Home() {
const { chantier, setChantier } = useChantier();
-
+ const { role } = useUser();
+
return(
-
-
-
-
-
-
-
-
+
+ {role === "chef" && }
+ {role === "resp" && }
+ {role === "ouvrier" && (
+
+ )}
diff --git a/app/ContextUser.tsx b/app/ContextUser.tsx
index c755826..f0954e5 100644
--- a/app/ContextUser.tsx
+++ b/app/ContextUser.tsx
@@ -1,9 +1,11 @@
-import { User } from "@/class/class";
+import { User as FirebaseUser } from "firebase/auth";
import { createContext, ReactNode, useContext, useMemo, useState } from "react";
type UserContextType = {
- user: User[];
- setUser: (list: User[]) => void;
+ user: FirebaseUser | null;
+ role: string | null;
+ setUser: (user: FirebaseUser | null) => void;
+ setRole: (role: string | null) => void;
};
const UserContext = createContext(null);
@@ -13,21 +15,22 @@ type UserProviderProps = {
};
export const UserProvider = ({ children }: UserProviderProps) => {
- const [user, setUser] = useState([]);
-
- const value = useMemo(() => ({ user, setUser }), [user]);
-
- return (
-
- {children}
-
+ const [user, setUser] = useState(null);
+ const [role, setRole] = useState(null);
+
+ const value = useMemo(
+ () => ({ user, role, setUser, setRole }),
+ [user, role]
);
+
+ return {children};
};
export const useUser = () => {
const context = useContext(UserContext);
+
if (!context) {
throw new Error("useUser doit être utilisé dans ");
}
return context;
-};
\ No newline at end of file
+};
diff --git a/app/_layout.tsx b/app/_layout.tsx
index a5e1bc2..4f98442 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -14,6 +14,7 @@ import { auth, db } from "../firebase_config";
import { Platform, UIManager } from 'react-native';
import { ChantierProvider } from "./ContextChantier";
+import { UserProvider } from "./ContextUser";
export const unstable_settings = {
@@ -29,8 +30,9 @@ export default function RootLayout() {
useEffect(() => {
const unsubscribe = onAuthStateChanged(auth, async (currentUser) => {
if (!currentUser) {
- router.replace("/login/login");
setUser(null);
+ setUserRole(null);
+ router.replace("/login/login");
return;
}
@@ -40,40 +42,34 @@ export default function RootLayout() {
if (!userDoc.exists()) {
router.replace("/login/login");
setUser(null);
+ setUserRole(null);
return;
}
const { role } = userDoc.data();
setUser(currentUser);
setUserRole(role);
-
- if (role === "chef") {
- router.replace("/(tabs)");
- } else if (role === "resp") {
- router.replace("/(tabs)");
- } else if (role === "ouvrier") {
- router.replace("/(tabs)");
- } else {
- router.replace("/login/login");
- }
+ router.replace("/(tabs)/home");
});
return unsubscribe;
}, []);
return (
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
);
}