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;