display playbacks

This commit is contained in:
2025-09-02 16:54:21 +02:00
parent df707ff5a0
commit 52e486d6db
2 changed files with 74 additions and 7 deletions
+67 -4
View File
@@ -29,7 +29,8 @@ import MusicCard from "../Library/components/MusicCard";
const Profile = () => {
const [selected, setSelected] = useState("Chansons");
const { userProjects, followingCount, currentUserData } = useUser();
const { userProjects, userPlaybacks, followingCount, currentUserData } =
useUser();
const [, setTooltip] = useGlobal("_tooltip");
const [menuTop, setMenuTop] = useState(0);
const [showMenu, setShowMenu] = useState(false);
@@ -176,9 +177,71 @@ const Profile = () => {
))}
</View>
{selected === "Playbacks" && (
<View style={{ flex: 1 }}>
<EmptyText text={"Aucun playback pour le moment"} />
</View>
<ScrollView style={{ flex: 1 }}>
{Array.isArray(userPlaybacks) && userPlaybacks.length > 0 ? (
<FlatList
data={userPlaybacks}
contentContainerStyle={{
gap: 10,
}}
keyExtractor={(item) => item.id}
renderItem={({ item }) => (
<MusicCard
title={item?.title || "Sans titre"}
subtitle={currentUserData?.userName || "MusicLand"}
imageUri={item?.coverUrl || null}
projectId={item?.id}
likedBy={item?.likedBy || []}
onPress={() =>
navigate(Routes.MusicDetails, { projectId: item.id })
}
onPressMore={(posTop) => {
setSelectedProjectId(item.id);
setMenuTop(posTop);
setShowMenu((prev) => !prev || posTop !== menuTop);
}}
/>
)}
/>
) : (
<EmptyText text={"Aucune chanson pour le moment"} />
)}
<MoreMenu
visible={showMenu}
top={menuTop}
onClose={() => setShowMenu(false)}
inPlaylist={false}
projectId={selectedProjectId}
extraItems={[
{
label: "Supprimer",
onPress: () =>
SheetManager.show("Delete", {
payload: {
title: "Supprimer le projet",
message:
"Cette action supprimera définitivement ce projet.",
onConfirm: async () => {
try {
if (!selectedProjectId) return;
await projectsRef.doc(selectedProjectId).delete();
setTooltip({
type: "success",
text: "Projet supprimé",
});
} catch (e) {
setTooltip({
type: "error",
text: e?.message || "Suppression impossible",
});
}
},
},
}),
},
]}
/>
</ScrollView>
)}
{selected === "Chansons" && (
<ScrollView style={{ flex: 1 }}>