diff --git a/src/screens/HitParade/HitParade.js b/src/screens/HitParade/HitParade.js index 4d51398..efe683a 100644 --- a/src/screens/HitParade/HitParade.js +++ b/src/screens/HitParade/HitParade.js @@ -48,7 +48,7 @@ const HitParade = () => { fontFamily: FONT_FAMILY.HelveticaNeueBold, }} > - Coups de coeur des utilisateurs catégorie Playbacks + Coups de coeur des utilisateurs catégorie {selected} { fontFamily: FONT_FAMILY.InterRegular, }} > - Les 3 Playbacks les plus likées du mois reçoivent des{"\n"} + Les 3 {selected} les plus likées du mois reçoivent des{"\n"} tokens. diff --git a/src/screens/Profile/SingerProfile.js b/src/screens/Profile/SingerProfile.js index 1878e2c..76f07ad 100644 --- a/src/screens/Profile/SingerProfile.js +++ b/src/screens/Profile/SingerProfile.js @@ -1,5 +1,5 @@ import { BlurView } from "expo-blur"; -import React, { useEffect, useState } from "react"; +import React, { useEffect, useMemo, useState } from "react"; import { FlatList, Image, @@ -14,7 +14,8 @@ import { useGlobal } from "reactn"; import { background, icons, img } from "../../assets"; import BorderGradient from "../../components/BorderGradient/BorderGradient"; import GradientButton from "../../components/GradientButton"; -import { followsRef } from "../../config/firebase"; +import { followsRef, projectsRef } from "../../config/firebase"; +import useDataFromRef from "../../hooks/useDataFromRef"; import Page from "../../layouts/Page"; import { useUser } from "../../providers/UserDataProvider"; import { getFollowersCount, getFollowingCount } from "../../services/follows"; @@ -22,6 +23,8 @@ import { gutters, Palette } from "../../styles"; import { FONT_FAMILY } from "../../styles/Fonts"; import Style, { size } from "../../styles/Style"; import MusicCard from "../Library/components/MusicCard"; +import { navigate } from "../../navigation/NavigationService"; +import { Routes } from "../../navigation"; const SingerProfile = ({ route }) => { const { userId } = route.params; const { getUserByUid, followUser, unfollowUser } = useUser(); @@ -62,6 +65,22 @@ const SingerProfile = ({ route }) => { } }; const [isFollowing, setIsFollowing] = useState(false); + const userProjectsQueryRef = useMemo(() => { + try { + if (!userId) return null; + return projectsRef.where("userId", "==", userId).orderBy("updatedAt", "desc"); + } catch (e) { + return null; + } + }, [userId]); + + const { data: userProjects = [] } = useDataFromRef({ + ref: userProjectsQueryRef, + simpleRef: false, + listener: true, + condition: !!userProjectsQueryRef, + refreshArray: [userId], + }); const handleFollowUser = async () => { if (!currentUID || !userId || currentUID === userId) return; if (isFollowing) { @@ -105,7 +124,11 @@ const SingerProfile = ({ route }) => { > { - 0 + {Array.isArray(userProjects) ? userProjects.length : 0} playbacks @@ -220,11 +243,22 @@ const SingerProfile = ({ route }) => { {selected === "Chansons" && ( } + keyExtractor={(item) => item.id} + renderItem={({ item }) => ( + navigate(Routes.MusicDetails, { projectId: item.id })} + onPressMore={() => {}} + /> + )} /> )}