playlists

This commit is contained in:
2025-08-29 11:38:17 +02:00
parent d857be1424
commit e0146321b8
9 changed files with 248 additions and 108 deletions
+13 -19
View File
@@ -5,7 +5,11 @@ import { createContext, useContext, useGlobal } from "reactn";
import { useState } from "react";
import { checkIfEmailIsValid } from "../actions/signupActions";
import firebase, { usersRef } from "../config/firebase";
import firebase, {
playlistsRef,
projectsRef,
usersRef,
} from "../config/firebase";
export const UserDataContext = createContext();
@@ -21,7 +25,8 @@ export default ({ children }) => {
const [currentUserRoles] = useGlobal("currentUserRoles");
const [userProjects, setUserProjects] = useState([]);
const [userLikedProjects, setUserLikedProjects] = useState([]);
const [userLikedMusic, setUserLikedMusic] = useState([]);
const [userPlaylists, setUserPlaylists] = useState([]);
useDataFromRef({
ref: currentUID ? usersRef.doc(currentUID) : null,
simpleRef: true,
@@ -40,9 +45,7 @@ export default ({ children }) => {
// Subscribe to user's projects (musics)
useDataFromRef({
ref: currentUID
? firebase
.firestore()
.collection("projects")
? projectsRef
.where("userId", "==", currentUID)
.orderBy("updatedAt", "desc")
: null,
@@ -56,9 +59,7 @@ export default ({ children }) => {
// Subscribe to user's liked projects
useDataFromRef({
ref: currentUID
? firebase
.firestore()
.collection("projects")
? projectsRef
.where("likedBy", "array-contains", currentUID)
.orderBy("updatedAt", "desc")
: null,
@@ -69,20 +70,14 @@ export default ({ children }) => {
onUpdate: (list) => setUserLikedProjects(Array.isArray(list) ? list : []),
});
// userLiked music
// Subscribe to user's playlists
useDataFromRef({
ref: currentUID
? firebase
.firestore()
.collection("projects")
.where("likedBy", "array-contains", currentUID)
.orderBy("updatedAt", "desc")
: null,
ref: currentUID ? playlistsRef.where("createdBy", "==", currentUID) : null,
simpleRef: false,
listener: true,
condition: !!currentUID,
refreshArray: [currentUID],
onUpdate: (list) => setUserLikedMusic(Array.isArray(list) ? list : []),
onUpdate: (list) => setUserPlaylists(Array.isArray(list) ? list : []),
});
const updatePendingUserData = (newData) => {
@@ -149,8 +144,6 @@ export default ({ children }) => {
cleanData.creationTimestamp = new Date();
}
console.log("cleanData", cleanData);
await usersRef.doc(dynamicUID).set(cleanData, { merge: true });
if (shouldSetTooltip) {
@@ -197,6 +190,7 @@ export default ({ children }) => {
currentUserData,
userProjects,
userLikedProjects,
userPlaylists,
setCurrentUserData,