continue generating flow, add backend connection on main tabs

This commit is contained in:
Thomas Demirdjian
2025-08-28 17:18:28 +02:00
parent 0ca7544005
commit bb7b35626f
110 changed files with 1701 additions and 3408 deletions
+41
View File
@@ -18,6 +18,8 @@ export default ({ children }) => {
const [currentUID] = useGlobal("currentUID");
const [currentUserData, setCurrentUserData] = useGlobal("currentUserData");
const [currentUserRoles] = useGlobal("currentUserRoles");
const [userProjects, setUserProjects] = useState([]);
const [userLikedProjects, setUserLikedProjects] = useState([]);
useDataFromRef({
ref: currentUID ? usersRef.doc(currentUID) : null,
@@ -34,6 +36,38 @@ export default ({ children }) => {
},
});
// Subscribe to user's projects (musics)
useDataFromRef({
ref: currentUID
? firebase
.firestore()
.collection("projects")
.where("userId", "==", currentUID)
.orderBy("updatedAt", "desc")
: null,
simpleRef: false,
listener: true,
condition: !!currentUID,
refreshArray: [currentUID],
onUpdate: (list) => setUserProjects(Array.isArray(list) ? list : []),
});
// Subscribe to user's liked projects
useDataFromRef({
ref: currentUID
? firebase
.firestore()
.collection("projects")
.where("likedBy", "array-contains", currentUID)
.orderBy("updatedAt", "desc")
: null,
simpleRef: false,
listener: true,
condition: !!currentUID,
refreshArray: [currentUID],
onUpdate: (list) => setUserLikedProjects(Array.isArray(list) ? list : []),
});
const updatePendingUserData = (newData) => {
setPendingUserData((prevData) => ({
...prevData,
@@ -144,6 +178,8 @@ export default ({ children }) => {
currentUserRoles,
currentUID,
currentUserData,
userProjects,
userLikedProjects,
setCurrentUserData,
@@ -163,3 +199,8 @@ export default ({ children }) => {
export const useUserData = () => {
return useContext(UserDataContext);
};
// Convenience alias returning the same context, as requested
export const useUser = () => {
return useContext(UserDataContext);
};