last fixes, home and videos

This commit is contained in:
Thomas Demirdjian
2025-11-10 14:24:16 +01:00
parent d7d9211fbe
commit dd4cf9b4d4
40 changed files with 984 additions and 647 deletions
+30 -23
View File
@@ -12,10 +12,12 @@ import firebase, {
playlistsRef,
projectsRef,
usersRef,
videosRef,
} from "../config/firebase";
import { getUserPreferredArtistName } from "../utils/artistName";
import { getLikeFieldPath, LIKE_TARGET } from "../utils/likes";
import { ensureAuthenticated } from "../utils/authRedirect";
import { isWeb } from "../hooks/useLayoutType";
const SONG_LIKES_FIELD = getLikeFieldPath(LIKE_TARGET.SONG);
const PLAYBACK_LIKES_FIELD = getLikeFieldPath(LIKE_TARGET.PLAYBACK);
@@ -43,20 +45,18 @@ export default ({ children }) => {
});
// Subscribe to user's projects (musics)
const {
data: userProjects = [],
loading: userProjectsLoading = true,
} = useDataFromRef({
ref: currentUID
? projectsRef
.where("userId", "==", currentUID)
.orderBy("updatedAt", "desc")
: null,
simpleRef: false,
listener: true,
condition: !!currentUID,
refreshArray: [currentUID],
});
const { data: userProjects = [], loading: userProjectsLoading = true } =
useDataFromRef({
ref: currentUID
? projectsRef
.where("userId", "==", currentUID)
.orderBy("updatedAt", "desc")
: null,
simpleRef: false,
listener: true,
condition: !!currentUID,
refreshArray: [currentUID],
});
const userPlaybacks = Array.isArray(userProjects)
? userProjects.filter((project) => project.playbackUrl)
@@ -136,17 +136,17 @@ export default ({ children }) => {
{
selectedProjectId: projectId || null,
},
{ merge: true }
{ merge: true },
);
console.log("update selected project");
} catch (error) {
console.log(
"UserDataProvider: unable to persist selectedProjectId",
error?.message || error
error?.message || error,
);
}
},
[currentUID]
[currentUID],
);
const selectProject = useCallback(
@@ -161,12 +161,12 @@ export default ({ children }) => {
persistSelectedProjectId(safeId).catch((error) => {
console.log(
"UserDataProvider: persist selectedProjectId failed",
error?.message || error
error?.message || error,
);
});
}
},
[currentUID, persistSelectedProjectId, setSelectedProject]
[currentUID, persistSelectedProjectId, setSelectedProject],
);
const resetSelectedProject = useCallback(() => {
@@ -183,7 +183,7 @@ export default ({ children }) => {
...partial,
updatedAt: firebase.firestore.FieldValue.serverTimestamp(),
},
options
options,
);
} catch (e) {
console.log("updateProjectData error", e?.message);
@@ -209,7 +209,7 @@ export default ({ children }) => {
try {
await setIsLoading(true);
const artistDisplayName = getUserPreferredArtistName(
currentUserDoc || currentUserData || {}
currentUserDoc || currentUserData || {},
);
const payload = {
userId: currentUID || null,
@@ -238,7 +238,7 @@ export default ({ children }) => {
followedBy: arrayUnion(currentUID),
lastFollowersUpdateAt: new Date(),
},
{ merge: true }
{ merge: true },
);
setTooltip({ type: "success", text: "Abonnement mis à jour" });
}
@@ -259,7 +259,7 @@ export default ({ children }) => {
followedBy: arrayRemove(currentUID),
lastFollowersUpdateAt: new Date(),
},
{ merge: true }
{ merge: true },
);
setTooltip({
type: "success",
@@ -416,6 +416,11 @@ export default ({ children }) => {
userProjects,
]);
const { data: videos } = useDataFromRef({
ref: videosRef.doc("fr"),
simpleRef: true,
});
return (
<UserDataContext.Provider
value={{
@@ -452,6 +457,8 @@ export default ({ children }) => {
setSelectedProjectId: selectProject,
updateProjectData,
createNewProject,
videos,
}}
>
{children}