import React, { useState } from "react"; import { Pressable, ScrollView, Text, View } from "react-native"; import { Image as ExpoImage } from "expo-image"; import { img } from "../../../assets"; import MoreMenu from "../../../components/MoreMenu"; import { Routes } from "../../../navigation"; import { navigate } from "../../../navigation/NavigationService"; import { Palette, Style } from "../../../styles"; import { FONT_FAMILY } from "../../../styles/Fonts"; import { size } from "../../../styles/Style"; import CreateLyricsHeader from "../../Writing/components/CreateLyricsHeader"; import MusicCard from "./MusicCard"; const EmptyText = ({ text }) => ( {text} ); const SearchResultsList = ({ selected, filteredProjects, projectsLoading, loadMoreProjects, filteredUsers, usersLoading, loadMoreUsers, onResultSelected, contentContainerStyle, style, }) => { const [menuPosition, setMenuPosition] = useState(null); const [showMenu, setShowMenu] = useState(false); const [selectedProjectId, setSelectedProjectId] = useState(null); const handleProjectPress = (projectId) => { navigate(Routes.MusicDetails, { projectId }); onResultSelected?.(); }; const handleProfilePress = (userId) => { navigate(Routes.SingerProfile, { userId }); onResultSelected?.(); }; return ( {((!selected && (filteredProjects.length > 0 || projectsLoading)) || selected === "Musiques") && ( {filteredProjects.length > 0 && ( {Array.isArray(filteredProjects) && filteredProjects.slice(0, 6).map((project) => ( handleProjectPress(project.id)} onPressMore={(positionTop) => { setSelectedProjectId(project.id); setMenuPosition(positionTop); setShowMenu( (previous) => !previous || positionTop?.top !== (menuPosition?.top ?? null), ); }} /> ))} {(filteredProjects.length >= 6 || projectsLoading) && ( {projectsLoading ? "Chargement…" : "Charger plus"} )} )} {filteredProjects.length === 0 && !projectsLoading && ( )} )} {((!selected && (filteredUsers.length > 0 || usersLoading)) || selected === "Profils") && ( {filteredUsers.length > 0 && ( {Array.isArray(filteredUsers) && filteredUsers.slice(0, 5).map((user) => ( handleProfilePress(user.id)} > {user?.userName || "Utilisateur"} ))} {(filteredUsers.length >= 5 || usersLoading) && ( {usersLoading ? "Chargement…" : "Charger plus"} )} )} {filteredUsers.length === 0 && !usersLoading && ( )} )} {selected === "Playbacks" && ( )} {selected === "Clips" && ( )} setShowMenu(false)} inPlaylist={false} projectId={selectedProjectId} /> ); }; export default SearchResultsList;