continue generating flow, add backend connection on main tabs
This commit is contained in:
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user