diff --git a/src/screens/Profile/Profile.js b/src/screens/Profile/Profile.js index c826374..bae65f9 100644 --- a/src/screens/Profile/Profile.js +++ b/src/screens/Profile/Profile.js @@ -39,6 +39,74 @@ const Profile = () => { setSelected(item); }; + // Composant factorisé pour afficher la liste de musiques + const MusicListSection = ({ data, emptyText }) => ( + + {Array.isArray(data) && data.length > 0 ? ( + item.id} + renderItem={({ item }) => ( + + navigate(Routes.MusicDetails, { projectId: item.id }) + } + onPressMore={(posTop) => { + setSelectedProjectId(item.id); + setMenuTop(posTop); + setShowMenu((prev) => !prev || posTop !== menuTop); + }} + /> + )} + /> + ) : ( + + )} + 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", + }); + } + }, + }, + }), + }, + ]} + /> + + ); + const EmptyText = ({ text }) => ( { ))} {selected === "Playbacks" && ( - - {Array.isArray(userPlaybacks) && userPlaybacks.length > 0 ? ( - item.id} - renderItem={({ item }) => ( - - navigate(Routes.MusicDetails, { projectId: item.id }) - } - onPressMore={(posTop) => { - setSelectedProjectId(item.id); - setMenuTop(posTop); - setShowMenu((prev) => !prev || posTop !== menuTop); - }} - /> - )} - /> - ) : ( - - )} - 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", - }); - } - }, - }, - }), - }, - ]} - /> - + )} {selected === "Chansons" && ( - - {Array.isArray(userProjects) && userProjects.length > 0 ? ( - item.id} - renderItem={({ item }) => ( - - navigate(Routes.MusicDetails, { projectId: item.id }) - } - onPressMore={(posTop) => { - setSelectedProjectId(item.id); - setMenuTop(posTop); - setShowMenu((prev) => !prev || posTop !== menuTop); - }} - /> - )} - /> - ) : ( - - )} - 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", - }); - } - }, - }, - }), - }, - ]} - /> - + )} {selected === "Clips" && (