fixes
This commit is contained in:
@@ -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]
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user