cover flow
This commit is contained in:
+55
-16
@@ -12,7 +12,8 @@ const getStageMetadata = (project) => {
|
|||||||
const lyricsCount = getLyricsCount(project);
|
const lyricsCount = getLyricsCount(project);
|
||||||
const hasLyrics = !!(project?.hasLyrics || lyricsCount > 0);
|
const hasLyrics = !!(project?.hasLyrics || lyricsCount > 0);
|
||||||
const hasSongUrl = !!project?.songUrl;
|
const hasSongUrl = !!project?.songUrl;
|
||||||
const hasCover = !!project?.coverUrl;
|
const cover = project?.cover || {};
|
||||||
|
const hasCoverUrl = !!project?.coverUrl;
|
||||||
const hasPlaybackAsset = !!project?.playbackUrl;
|
const hasPlaybackAsset = !!project?.playbackUrl;
|
||||||
const hasPlayback = hasPlaybackAsset || hasSongUrl;
|
const hasPlayback = hasPlaybackAsset || hasSongUrl;
|
||||||
const musicUrls = Array.isArray(project?.musicUrls)
|
const musicUrls = Array.isArray(project?.musicUrls)
|
||||||
@@ -30,7 +31,7 @@ const getStageMetadata = (project) => {
|
|||||||
lyricsCount,
|
lyricsCount,
|
||||||
hasLyrics,
|
hasLyrics,
|
||||||
hasSongUrl,
|
hasSongUrl,
|
||||||
hasCover,
|
hasCover: hasCoverUrl,
|
||||||
hasPlayback,
|
hasPlayback,
|
||||||
hasPlaybackAsset,
|
hasPlaybackAsset,
|
||||||
hasMusicDraft: musicUrls.length > 0,
|
hasMusicDraft: musicUrls.length > 0,
|
||||||
@@ -44,15 +45,13 @@ const getStageMetadata = (project) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getStageLockState = (key, metadata) => {
|
const getStageLockState = (key, metadata) => {
|
||||||
const { hasSongUrl, hasCover, hasPlayback, lyricsCount } = metadata;
|
|
||||||
|
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case "songwriter":
|
case "songwriter":
|
||||||
return hasSongUrl;
|
return metadata.hasSongUrl;
|
||||||
case "beatmaker":
|
case "beatmaker":
|
||||||
return !(lyricsCount > 0 && !hasSongUrl);
|
return metadata.lyricsCount <= 0;
|
||||||
case "director":
|
case "director":
|
||||||
return !hasCover;
|
return !metadata.hasCover;
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -85,7 +84,13 @@ const getStageDescription = (key, metadata) => {
|
|||||||
if (isMusicGenerating) {
|
if (isMusicGenerating) {
|
||||||
return "Votre morceau est en cours de création";
|
return "Votre morceau est en cours de création";
|
||||||
}
|
}
|
||||||
if (hasSongUrl || hasMusicDraft) {
|
if (hasSongUrl) {
|
||||||
|
if (!hasCover) {
|
||||||
|
return "Créer ou modifier la cover de votre morceau";
|
||||||
|
}
|
||||||
|
return "Modifier la cover ou la production musicale";
|
||||||
|
}
|
||||||
|
if (hasMusicDraft) {
|
||||||
return "Modifier la production musicale";
|
return "Modifier la production musicale";
|
||||||
}
|
}
|
||||||
return "Commencer la création de votre morceau";
|
return "Commencer la création de votre morceau";
|
||||||
@@ -112,9 +117,9 @@ const getStageLockedDescription = (key, metadata) => {
|
|||||||
? "Impossible de modifier les paroles"
|
? "Impossible de modifier les paroles"
|
||||||
: undefined;
|
: undefined;
|
||||||
case "beatmaker":
|
case "beatmaker":
|
||||||
return metadata.hasSongUrl
|
return metadata.lyricsCount > 0
|
||||||
? "Impossible de modifier la production musicale"
|
? undefined
|
||||||
: undefined;
|
: "Créez vos paroles pour débloquer le studio";
|
||||||
case "director":
|
case "director":
|
||||||
return metadata.hasPlaybackAsset
|
return metadata.hasPlaybackAsset
|
||||||
? "Impossible de modifier le playback"
|
? "Impossible de modifier le playback"
|
||||||
@@ -163,14 +168,48 @@ export const getStageAction = (key, project) => {
|
|||||||
route:
|
route:
|
||||||
getLyricsCount(project) > 0 ? Routes.Lyrics : Routes.WritingLyrics,
|
getLyricsCount(project) > 0 ? Routes.Lyrics : Routes.WritingLyrics,
|
||||||
};
|
};
|
||||||
case "beatmaker":
|
case "beatmaker": {
|
||||||
if (project?.musicStatus === "GENERATING") {
|
if (!project) {
|
||||||
|
return { route: Routes.Compose };
|
||||||
|
}
|
||||||
|
|
||||||
|
const musicStatus = project?.musicStatus || null;
|
||||||
|
const songUrl = project?.songUrl || null;
|
||||||
|
const coverStatus = project?.coverStatus || null;
|
||||||
|
const cover = project?.cover || {};
|
||||||
|
const hasCoverBackground = !!cover?.generatedBackground;
|
||||||
|
const hasCoverResult = !!cover?.result;
|
||||||
|
const hasFinalCover = !!project?.coverUrl;
|
||||||
|
|
||||||
|
if (musicStatus === "GENERATING") {
|
||||||
return { route: Routes.GeneratingSong };
|
return { route: Routes.GeneratingSong };
|
||||||
}
|
}
|
||||||
if (project?.musicStatus === "GENERATED") {
|
|
||||||
return { route: Routes.SongReady };
|
if (!songUrl) {
|
||||||
|
if (musicStatus === "GENERATED") {
|
||||||
|
return { route: Routes.SongReady };
|
||||||
|
}
|
||||||
|
return { route: Routes.Compose };
|
||||||
}
|
}
|
||||||
return { route: Routes.Compose };
|
|
||||||
|
if (coverStatus === "GENERATING") {
|
||||||
|
return { route: Routes.PouchReady };
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hasCoverBackground) {
|
||||||
|
return { route: Routes.ChooseCoverType };
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hasCoverResult) {
|
||||||
|
return { route: Routes.PouchReady };
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hasFinalCover) {
|
||||||
|
return { route: Routes.PhotoCover };
|
||||||
|
}
|
||||||
|
|
||||||
|
return { route: Routes.ChooseCoverType };
|
||||||
|
}
|
||||||
case "director":
|
case "director":
|
||||||
return {
|
return {
|
||||||
route: Routes.Playback,
|
route: Routes.Playback,
|
||||||
|
|||||||
Reference in New Issue
Block a user