new background and fixs

This commit is contained in:
2025-10-23 10:53:34 +02:00
parent ebe26542fe
commit 8024f71e1c
8 changed files with 71 additions and 70 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1004 KiB

After

Width:  |  Height:  |  Size: 35 MiB

+1 -1
View File
@@ -73,7 +73,7 @@ const MusicLandHeader = ({
)}
</View>
<Image
source={logo || icons.musicLandLogo}
source={logo}
style={{
alignSelf: "center",
height: isWeb ? 150 : 100,
+2 -2
View File
@@ -1,6 +1,6 @@
import React, { useState } from "react";
import { Image, StyleSheet, View } from "react-native";
import { ai, background, icons } from "../../assets";
import { ai, background } from "../../assets";
import FullscreenIntroVideo from "../../components/FullscreenIntroVideo";
import GradientButton from "../../components/GradientButton";
import MusicLandHeader from "../../components/MusicLandHeader";
@@ -17,7 +17,7 @@ const Compose = () => {
<MusicLandHeader
onPressBack={goBack}
progress={9}
logo={icons.musicLandStudio}
// logo={icons.musicLandStudio}
/>
<View
style={{ flex: 1, position: "relative", justifyContent: "flex-end" }}
+2 -2
View File
@@ -6,7 +6,7 @@ import React, {
useState,
} from "react";
import { Dimensions, FlatList, View } from "react-native";
import { background, icons } from "../../assets";
import { background } from "../../assets";
import GradientButton from "../../components/GradientButton";
import MusicLandHeader from "../../components/MusicLandHeader";
import firebase from "../../config/firebase";
@@ -176,7 +176,7 @@ const ComposeSong = () => {
<MusicLandHeader
onPressBack={onPressBack}
progress={progress}
logo={icons.musicLandStudio}
// logo={icons.musicLandStudio}
/>
<View style={{ flex: 1, paddingBottom: gutters, gap: 48 }}>
<View
+2 -2
View File
@@ -5,7 +5,7 @@ import React, { useEffect, useMemo, useRef, useState } from "react";
import { Image, Platform, Text, View } from "react-native";
import useMinuit from "react-native-minuit/src/hooks/useMinuit.js";
import { responsiveHeight } from "react-native-responsive-dimensions";
import { ai, background, icons } from "../../assets";
import { ai, background } from "../../assets";
import AppAlert from "../../components/Alert";
import GradientButton from "../../components/GradientButton";
import MusicLandHeader from "../../components/MusicLandHeader";
@@ -263,7 +263,7 @@ const GeneratingSong = () => {
<MusicLandHeader
onPressBack={() => navigate(Routes.Home)}
progress={63}
logo={icons.musicLandStudio}
// logo={icons.musicLandStudio}
/>
<View style={{ flex: 1, marginTop: 16 }}>
<CreateLyricsHeader
@@ -159,29 +159,26 @@ const CustomizeSongStructure = ({ baseStructure = [], onChange }) => {
[extractValues]
);
const handleGrant = useCallback(
(itemId, event) => {
const rect = containerRef.current?.getBoundingClientRect();
const scrollY = getScrollY();
const nativeEvent = event.nativeEvent || {};
const fallbackY =
typeof nativeEvent.pageY === "number"
? nativeEvent.pageY
: typeof nativeEvent.clientY === "number"
? nativeEvent.clientY + scrollY
: scrollY;
const containerTop = rect ? rect.top + scrollY : fallbackY;
dragStateRef.current = {
itemId,
containerTop,
};
setActiveItemId(itemId);
if (typeof document !== "undefined") {
document.body.style.userSelect = "none";
}
},
[]
);
const handleGrant = useCallback((itemId, event) => {
const rect = containerRef.current?.getBoundingClientRect();
const scrollY = getScrollY();
const nativeEvent = event.nativeEvent || {};
const fallbackY =
typeof nativeEvent.pageY === "number"
? nativeEvent.pageY
: typeof nativeEvent.clientY === "number"
? nativeEvent.clientY + scrollY
: scrollY;
const containerTop = rect ? rect.top + scrollY : fallbackY;
dragStateRef.current = {
itemId,
containerTop,
};
setActiveItemId(itemId);
if (typeof document !== "undefined") {
document.body.style.userSelect = "none";
}
}, []);
const handleMove = useCallback((event) => {
const { itemId, containerTop } = dragStateRef.current;
@@ -210,9 +207,7 @@ const CustomizeSongStructure = ({ baseStructure = [], onChange }) => {
}, []);
const handleRelease = useCallback(() => {
setSortableItems((prev) =>
buildSortableItems(extractValues(prev))
);
setSortableItems((prev) => buildSortableItems(extractValues(prev)));
dragStateRef.current = {
itemId: null,
containerTop: 0,
+41 -35
View File
@@ -3,10 +3,10 @@ import React, { useCallback, useEffect, useState } from "react";
import { ActivityIndicator, Text, View } from "react-native";
import useMinuit from "react-native-minuit/src/hooks/useMinuit.js";
import { background, icons } from "../../assets";
import alert from "../../components/Alert";
import BorderGradientButton from "../../components/BorderGradientButton";
import GradientButton from "../../components/GradientButton";
import MusicLandHeader from "../../components/MusicLandHeader";
import alert from "../../components/Alert";
import firebase, { tasksRef } from "../../config/firebase";
import loaderMessages from "../../config/loaderMessages";
import { isWeb } from "../../hooks/useLayoutType";
@@ -38,38 +38,41 @@ const PouchReady = () => {
setCoverStyle(selectedProject?.coverStyle || "");
}, [selectedProject?.coverStyle]);
const generateCover = useCallback(async (styleValue) => {
if (!selectedProjectId) return;
if (hasGeneratedOptions) {
return;
}
const trimmedStyle = String(styleValue || "").trim();
if (!trimmedStyle) {
alert("Attention", "Merci de renseigner un style pour la pochette.", [
{ text: "OK" },
]);
return;
}
try {
await setIsLoading(true);
await updateProjectData(
{
coverStyle: trimmedStyle,
},
{ merge: true }
);
await tasksRef.add({
type: "cover",
projectId: selectedProjectId,
status: "PENDING",
createdAt: firebase.firestore.FieldValue.serverTimestamp(),
});
} catch (e) {
console.log("Cover task error", e?.message);
} finally {
setIsLoading(false);
}
}, [hasGeneratedOptions, selectedProjectId, setIsLoading, updateProjectData]);
const generateCover = useCallback(
async (styleValue) => {
if (!selectedProjectId) return;
if (hasGeneratedOptions) {
return;
}
const trimmedStyle = String(styleValue || "").trim();
if (!trimmedStyle) {
alert("Attention", "Merci de renseigner un style pour la pochette.", [
{ text: "OK" },
]);
return;
}
try {
await setIsLoading(true);
await updateProjectData(
{
coverStyle: trimmedStyle,
},
{ merge: true }
);
await tasksRef.add({
type: "cover",
projectId: selectedProjectId,
status: "PENDING",
createdAt: firebase.firestore.FieldValue.serverTimestamp(),
});
} catch (e) {
console.log("Cover task error", e?.message);
} finally {
setIsLoading(false);
}
},
[hasGeneratedOptions, selectedProjectId, setIsLoading, updateProjectData]
);
const requestCoverGeneration = useCallback(() => {
const trimmedStyle = (coverStyle || "").trim();
@@ -137,7 +140,8 @@ const PouchReady = () => {
>
{displayOptions.length > 0 ? (
displayOptions.map((option, index) => {
const optionUri = option?.finalUrl || option?.generatedUrl || "";
const optionUri =
option?.finalUrl || option?.generatedUrl || "";
if (!optionUri) return null;
return (
<View
@@ -239,7 +243,9 @@ const PouchReady = () => {
>
{!hasGeneratedOptions && (
<BorderGradientButton
title={isGenerating ? "Génération en cours..." : "Générer la pochette"}
title={
isGenerating ? "Génération en cours..." : "Générer la pochette"
}
icon={icons.stars}
onPress={requestCoverGeneration}
disabled={isGenerating}