fix empty project creation and use credit to generate

This commit is contained in:
Thomas Demirdjian
2025-11-04 15:59:49 +01:00
parent 7d93be845b
commit 4a45924ee0
10 changed files with 1096 additions and 487 deletions
+46 -12
View File
@@ -31,16 +31,26 @@ import {
getStageAction,
} from "../../utils/projectStages";
const isProjectEmpty = (project) => {
if (!project) {
return false;
}
return !(
typeof project?.title === "string" && project.title.trim().length > 0
);
};
const Home = ({ navigation, route }) => {
const isFocused = useIsFocused();
const {
userProjects = [],
resetSelectedProject,
selectProject,
selectedProject,
selectedProjectId,
currentUserData,
currentUID,
createNewProject,
} = useUser();
const { setTooltip } = useMinuit();
@@ -310,18 +320,42 @@ const Home = ({ navigation, route }) => {
[]
);
const handleStartNew = useCallback(() => {
resetSelectedProject();
setActiveStageIndex(0);
if (songwriterAction?.route) {
console.log(
"navigating to",
songwriterAction.route,
songwriterAction.params
);
navigate(songwriterAction.route, songwriterAction.params);
const handleStartNew = useCallback(async () => {
const targetRoute = songwriterAction?.route || Routes.WritingLyrics;
const targetParams = songwriterAction?.params;
try {
const emptyProject =
projects.find((project) => isProjectEmpty(project)) || null;
if (emptyProject?.id) {
selectProject(emptyProject.id);
setActiveStageIndex(findFirstUnlockedStageIndex(emptyProject));
navigate(targetRoute, targetParams);
return;
}
const newProjectId = await createNewProject({ hasLyrics: false });
if (!newProjectId) {
return;
}
setActiveStageIndex(0);
navigate(targetRoute, targetParams);
} catch (error) {
console.warn("Home: unable to start new project", error);
setTooltip?.({
type: "error",
text: "Impossible de démarrer un nouveau projet",
});
}
}, [resetSelectedProject, songwriterAction]);
}, [
createNewProject,
projects,
selectProject,
setActiveStageIndex,
setTooltip,
songwriterAction,
]);
const continueDisabled = !hasActiveProject || stageLocked || !stageRoute;
const startDisabled = !songwriterAction?.route;