fix empty project creation and use credit to generate
This commit is contained in:
+46
-12
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user