This commit is contained in:
2025-10-24 11:12:19 +02:00
parent 2839aa3ae8
commit 702e989128
12 changed files with 46 additions and 16 deletions
+26 -3
View File
@@ -2,28 +2,51 @@ import { useCallback } from "react";
import { useGlobal } from "reactn";
import { Routes } from "../navigation";
import { navigate } from "../navigation/NavigationService";
import { useUser } from "../providers/UserDataProvider";
import { getStageAction } from "../utils/projectStages";
const useNavigateToMusicDetails = () => {
const [, setTooltip] = useGlobal("_tooltip");
const { selectProject, userProjects = [], currentUID } = useUser();
return useCallback(
({ projectId, songUrl }) => {
({ projectId, songUrl, project = null }) => {
if (!projectId) {
return false;
}
const resolvedProject =
project?.id === projectId
? project
: userProjects.find((p) => p?.id === projectId) || project || null;
const isOwner =
resolvedProject?.userId && currentUID
? resolvedProject.userId === currentUID
: false;
if (songUrl != null && songUrl !== "") {
if (isOwner) {
selectProject?.(projectId);
}
navigate(Routes.MusicDetails, { projectId });
return true;
}
if (resolvedProject && isOwner) {
selectProject?.(projectId);
const stageAction = getStageAction("beatmaker", resolvedProject);
const targetRoute = stageAction?.route || Routes.Compose;
navigate(targetRoute, stageAction?.params);
return true;
}
setTooltip({
type: "error",
text: "Les paroles pour cette musique n'ont pas été générées",
text: "Cette musique n'est pas encore disponible",
});
return false;
},
[setTooltip]
[currentUID, selectProject, setTooltip, userProjects]
);
};