diff --git a/client/src/pages/mobile/new-reel.tsx b/client/src/pages/mobile/new-reel.tsx index 312b568..04073e8 100644 --- a/client/src/pages/mobile/new-reel.tsx +++ b/client/src/pages/mobile/new-reel.tsx @@ -62,7 +62,6 @@ export default function MobileNewReel() { // État audio preview const [isPlaying, setIsPlaying] = useState(null); - const [musicOffset, setMusicOffset] = useState(0); const [stabilize, setStabilize] = useState(true); // Activé par défaut pour les Reels @@ -75,27 +74,24 @@ export default function MobileNewReel() { }); const videoList = allMedia.filter(m => m.type === 'video').slice(0, 12); - const [loadedTracks, setLoadedTracks] = useState([]); - const { data: musicData, isLoading: musicLoading, refetch: refetchMusic } = useQuery<{ tracks: MusicTrack[] }>({ - queryKey: ['/api/music/search', selectedVideo?.id, musicOffset], - queryFn: async () => { - const minDuration = 10; - const maxDuration = 120; - const response = await fetch( - `/api/music/search?minDuration=${minDuration}&maxDuration=${maxDuration}&limit=10&offset=${musicOffset}` - ); - const data = await response.json(); - setLoadedTracks(data.tracks || []); - return data; - }, - enabled: currentStep === 'music' && !!selectedVideo, + // --- Added for Internal Audio Tracks --- + const { data: internalTracksResponse = [], isLoading: internalTracksLoading } = useQuery({ + queryKey: ['/api/audio-tracks'], }); - const handleLoadNewMusic = () => { - setMusicOffset(prev => prev + 10); - refetchMusic(); - }; + const internalTracks: MusicTrack[] = (internalTracksResponse || []).map(t => ({ + id: `internal_${t.id}`, + title: t.title, + artist: t.fileName || t.title, + albumName: "Bibliothèque Interne", + duration: t.duration || 0, + previewUrl: t.url, + downloadUrl: t.url, + imageUrl: "", + license: "Internal" + })); + // --- End Internal Tracks --- const uploadMutation = useMutation({ mutationFn: async (file: File) => { @@ -314,18 +310,32 @@ export default function MobileNewReel() { )}
- {musicData?.tracks?.map((track) => ( -
setSelectedTrack(track)} className={`flex items-center gap-3 p-3 rounded-xl border ${selectedTrack?.id === track.id ? 'border-primary bg-primary/5' : 'border-border bg-card'}`}> - -
-

{track.title}

-

{track.artist}

-
- {selectedTrack?.id === track.id && } + {internalTracksLoading ? ( +
+
- ))} + ) : internalTracks.length === 0 ? ( +
+ +

Aucune musique disponible

+

Un administrateur peut ajouter des MP3 via la Bibliothèque Audio.

+
+ ) : ( + internalTracks.map((track) => ( +
setSelectedTrack(track)} className={`flex items-center gap-3 p-3 rounded-xl border ${selectedTrack?.id === track.id ? 'border-primary bg-primary/5' : 'border-border bg-card'}`}> + +
+

{track.title}

+

+ {Math.floor(track.duration / 60)}:{String(track.duration % 60).padStart(2, '0')} +

+
+ {selectedTrack?.id === track.id && } +
+ )) + )}
{selectedTrack && (