diff --git a/src/screens/Playback/Playback.js b/src/screens/Playback/Playback.js index 07e2bc8..bc305ce 100644 --- a/src/screens/Playback/Playback.js +++ b/src/screens/Playback/Playback.js @@ -15,16 +15,29 @@ const Playback = ({ route }) => { const { project } = route.params; const projectId = project?.id; const songIndex = project?.songIndex; + console.log("sonindex", songIndex); const sunoTaskId = project?.sunoTaskId; const { setIsLoading } = useMinuit(); - + // console.log("musicTimestamps avec songIndex:", { + // // Accès avec la clé dot notation + // musicTimeStamps: project?.[`musicTimestamps.${songIndex}`], + // // Toutes les clés qui commencent par musicTimestamps + // }); const onPressRecord = useCallback(async () => { try { + console.log( + "project", + songIndex, + "project id", + projectId, + "sunoTaskId", + sunoTaskId + ); if (!projectId || songIndex === undefined || !sunoTaskId) { return; // return navigate(Routes.RecordPlayback, { project }); } - if (project.musicTimeStamps.songIndex) { + if (project?.[`musicTimestamps.${songIndex}`]) { console.log("exists"); return navigate(Routes.RecordPlayback, { project }); } @@ -46,17 +59,18 @@ const Playback = ({ route }) => { "Impossible de récupérer les timestamps pour ce playback pour le moment. Tu peux quand même continuer." ); } + + await setIsLoading(false); + navigate(Routes.RecordPlayback, { project }); } catch (e) { console.log("getSunoTimestamps error", e?.message || e); Alert.alert( "Timestamps", "Une erreur est survenue lors de la génération des timestamps. Tu peux quand même continuer." ); - } finally { await setIsLoading(false); - navigate(Routes.RecordPlayback, { project }); } - }, [projectId, songIndex, sunoTaskId, project]); + }, [projectId, songIndex, sunoTaskId, project, setIsLoading]); return ( diff --git a/src/screens/Playback/RecordPlayback.js b/src/screens/Playback/RecordPlayback.js index 0c54bbb..83af899 100644 --- a/src/screens/Playback/RecordPlayback.js +++ b/src/screens/Playback/RecordPlayback.js @@ -2,7 +2,7 @@ import { useFocusEffect } from "@react-navigation/native"; import { useAudioPlayer } from "expo-audio"; import { CameraView, useCameraPermissions } from "expo-camera"; import React, { useCallback, useEffect, useRef, useState } from "react"; -import { Platform, Text, View } from "react-native"; +import { Text, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import Svg, { Circle } from "react-native-svg"; import GradientButton from "../../components/GradientButton"; @@ -25,7 +25,7 @@ import CreateLyricsHeader from "../Writing/components/CreateLyricsHeader"; const TIME_BEFORE_INCREMENT_MS = 20000; // 20s const RecordPlayback = ({ route }) => { - const { top } = useSafeAreaInsets(); + const { top, bottom } = useSafeAreaInsets(); const { project } = route.params || {}; // Permissions @@ -298,22 +298,6 @@ const RecordPlayback = ({ route }) => { - - - L'enregistrement de ta vidéo commencera lorsque tu lanceras ta - musique, et s'arrêtera à la fin du morceau. - - - {/* Overlay de compte à rebours : on affiche 5→1 pour éviter l'effet visuel à 1 */} {isPreparing && countdown >= 1 && !showProgress && ( { )} + {/* CreateLyricsHeader overlay outside of CameraView */} + + + + L'enregistrement de ta vidéo commencera lorsque tu lanceras ta + musique, et s'arrêtera à la fin du morceau. + + + ); }; diff --git a/src/screens/Profile/Profile.js b/src/screens/Profile/Profile.js index 1c48854..bae65f9 100644 --- a/src/screens/Profile/Profile.js +++ b/src/screens/Profile/Profile.js @@ -245,7 +245,7 @@ const Profile = () => { ))} {selected === "Playbacks" && ( -