clear last tickets
This commit is contained in:
@@ -11,6 +11,7 @@ import {
|
||||
import { responsiveHeight } from "react-native-responsive-dimensions";
|
||||
import { background, icons } from "../../assets";
|
||||
import BorderGradientButton from "../../components/BorderGradientButton";
|
||||
import ShareBtn from "../../components/ShareBtn/ShareBtn";
|
||||
import { projectsRef } from "../../config/firebase";
|
||||
import useDataFromRef from "../../hooks/useDataFromRef";
|
||||
import useNavigateToMusicDetails from "../../hooks/useNavigateToMusicDetails";
|
||||
@@ -20,6 +21,7 @@ import { navigate } from "../../navigation/NavigationService";
|
||||
import { Palette, Style } from "../../styles";
|
||||
import { FONT_FAMILY } from "../../styles/Fonts";
|
||||
import CreateLyricsHeader from "../Writing/components/CreateLyricsHeader";
|
||||
import MobileCoinBadge from "../../components/MobileCoinBadge";
|
||||
import PlaybacksCard from "./components/PlaybacksCard";
|
||||
import SongCard from "./components/SongCard";
|
||||
const HitParade = () => {
|
||||
@@ -51,6 +53,18 @@ const HitParade = () => {
|
||||
return [arr.slice(0, 5), arr.slice(5)];
|
||||
}, [topPlaybacks]);
|
||||
|
||||
const resolvePlaybackThumbnail = useCallback((project) => {
|
||||
const candidates = [
|
||||
project?.thumbnailUrl,
|
||||
project?.songThumbnailUrl,
|
||||
project?.coverUrl,
|
||||
];
|
||||
const uri = candidates.find(
|
||||
(value) => typeof value === "string" && value.trim().length > 0,
|
||||
);
|
||||
return uri || null;
|
||||
}, []);
|
||||
|
||||
// === RENDUS PAR PLATEFORME ===
|
||||
const renderSongsMobile = () => (
|
||||
<FlatList
|
||||
@@ -91,7 +105,7 @@ const HitParade = () => {
|
||||
rank={index + 1}
|
||||
title={item?.title || "Sans titre"}
|
||||
artist={item?.userName}
|
||||
coverUrl={item?.coverUrl || null}
|
||||
thumbnailUrl={resolvePlaybackThumbnail(item)}
|
||||
onPress={() => navigate(Routes.Playbacks, { projectId: item.id })}
|
||||
/>
|
||||
)}
|
||||
@@ -167,7 +181,7 @@ const HitParade = () => {
|
||||
rank={idx + 1}
|
||||
title={item?.title || "Sans titre"}
|
||||
artist={"MusicLand"}
|
||||
coverUrl={item?.coverUrl || null}
|
||||
thumbnailUrl={resolvePlaybackThumbnail(item)}
|
||||
onPress={() => navigate(Routes.Playbacks, { projectId: item.id })}
|
||||
/>
|
||||
))}
|
||||
@@ -182,7 +196,7 @@ const HitParade = () => {
|
||||
rank={5 + idx + 1}
|
||||
title={item?.title || "Sans titre"}
|
||||
artist={"MusicLand"}
|
||||
coverUrl={item?.coverUrl || null}
|
||||
thumbnailUrl={resolvePlaybackThumbnail(item)}
|
||||
onPress={() =>
|
||||
navigate(Routes.Playbacks, { projectId: item.id })
|
||||
}
|
||||
@@ -221,6 +235,21 @@ const HitParade = () => {
|
||||
blurIntensity={isWeb ? 0 : 0}
|
||||
showCoin={false}
|
||||
>
|
||||
{!isWeb ? (
|
||||
<View
|
||||
style={{
|
||||
width: "100%",
|
||||
flexDirection: "row",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
gap: 12,
|
||||
marginBottom: 4,
|
||||
}}
|
||||
>
|
||||
<MobileCoinBadge style={{ flexShrink: 1 }} />
|
||||
<ShareBtn label="Partager" style={{ flexShrink: 0 }} />
|
||||
</View>
|
||||
) : null}
|
||||
<View style={{ gap: 12, flex: 1 }}>
|
||||
<Image
|
||||
source={icons.musicLandLogo}
|
||||
|
||||
Reference in New Issue
Block a user