This commit is contained in:
Philip Cesar Garay
2025-08-12 21:03:49 +08:00
parent 5a521d2f3d
commit 7d8942e125
49 changed files with 1002 additions and 122 deletions
+39 -21
View File
@@ -10,31 +10,47 @@ import Style, { size } from "../../styles/Style";
import { Palette } from "../../styles";
import { FONT_FAMILY } from "../../styles/Fonts";
import { Routes } from "../../navigation";
const PRICES = [
{
title: "Je télécharge ma chanson",
description: "Ce morceau uniquement",
price: "6,99€",
},
{
title: "3 chansons",
description: "Ce morceau et les 2 prochains que tu crées",
price: "12,99€",
},
{
title: "5 chansons",
description: "Ce morceau et les 4 prochains que tu crées",
price: "19,99€",
recommended: true,
},
];
import { useRoute } from "@react-navigation/core";
const DownloadPrices = () => {
const params = useRoute().params;
const action = params?.action;
const [selectedIndex, setSelectedIndex] = useState(null);
const PRICES = [
{
title: action === "playback" ? "1 Playback" : "Je télécharge ma chanson",
description: `Ce ${
action === "playback" ? "Playback" : "morceau"
} uniquement`,
price: "6,99€",
},
{
title: `3 ${action === "playback" ? "Playbacks" : "chansons"}`,
description: `Ce ${
action === "playback" ? "Playback" : "morceau"
} et les 2 prochains que tu crées`,
price: "12,99€",
},
{
title: `5 ${action === "playback" ? "Playbacks" : "chansons"}`,
description: `Ce ${
action === "playback" ? "Playback" : "morceau"
} et les 4 prochains que tu crées`,
price: "19,99€",
recommended: true,
},
];
return (
<Page backgroundImg={background.productionBG2} headerType="NONE">
<Page
backgroundImg={
action === "playback"
? background.playbackBG2
: background.productionBG2
}
headerType="NONE"
>
<MusicLandHeader onPressBack={goBack} progress={75} />
<View style={{ flex: 1, paddingTop: responsiveHeight(10) }}>
<CreateLyricsHeader
@@ -74,7 +90,9 @@ const DownloadPrices = () => {
tint={!item.recommended ? "dark" : "light"}
onPress={() => {
setSelectedIndex(index);
navigate(Routes.SongDownloaded);
navigate(Routes.SongDownloaded, {
action,
});
}}
>
<View style={{ paddingTop: 5 }}>
+26 -7
View File
@@ -11,10 +11,21 @@ import { size } from "../../styles/Style";
import { BlurView } from "expo-blur";
import { responsiveHeight } from "react-native-responsive-dimensions";
import { Routes } from "../../navigation";
import { useRoute } from "@react-navigation/core";
const DownloadSongs = () => {
const params = useRoute().params;
const action = params?.action;
return (
<Page backgroundImg={background.productionBG2} headerType="NONE">
<Page
backgroundImg={
action === "playback"
? background.playbackBG2
: background.productionBG2
}
headerType="NONE"
>
<MusicLandHeader onPressBack={goBack} progress={50} />
<View style={{ flex: 1, paddingTop: responsiveHeight(15) }}>
<CreateLyricsHeader
@@ -32,29 +43,37 @@ const DownloadSongs = () => {
}}
/>
<View style={{ gap: 12, paddingVertical: 12 }}>
<Text style={styles.title}>Prêt à télécharger ta chanson ?</Text>
<Text style={styles.title}>Prêt à télécharger {action === "playback" ? "ton Playback" : "ta chanson"} ?</Text>
<View style={{ gap: 10 }}>
<Pressable
style={styles.itemContainer}
onPress={() => navigate(Routes.DownloadPrices)}
onPress={() =>
navigate(Routes.DownloadPrices, {
action,
})
}
>
<BlurView style={styles.blurView} intensity={40} tint="dark">
<Text style={styles.label}>Télécharger ma chanson</Text>
<Text style={styles.label}>Télécharger {action === "playback" ? "mon Playback" : "ma chanson"}</Text>
<Text style={styles.description}>Pour moi uniquement</Text>
</BlurView>
</Pressable>
<Pressable
style={styles.itemContainer}
onPress={() => navigate(Routes.StreamSong)}
onPress={() =>
navigate(Routes.StreamSong, {
action,
})
}
>
<BlurView style={styles.blurView} intensity={40} tint="dark">
<Text style={styles.label}>
Diffuser ma chanson sur la plateforme de MusicLand (+
Diffuser {action === "playback" ? "mon Playback" : "ma chanson"} sur la plateforme de MusicLand (+
réseaux sociaux) et participer au concours
</Text>
<Text style={styles.description}>
Top 3: 1er 15% du CA ML - 2ème 10% du CA ML - 3ème 5% du CA
ML (catégorie chanson)
ML (catégorie {action === "playback" ? "Playback" : "chanson"})
</Text>
</BlurView>
</Pressable>
+16 -4
View File
@@ -12,10 +12,21 @@ import { responsiveHeight } from "react-native-responsive-dimensions";
import { Palette } from "../../styles";
import { FONT_FAMILY } from "../../styles/Fonts";
import { Routes } from "../../navigation";
import { useRoute } from "@react-navigation/core";
const SongDownloaded = () => {
const params = useRoute().params;
const action = params?.action;
return (
<Page backgroundImg={background.productionBG2} headerType="NONE">
<Page
backgroundImg={
action === "playback"
? background.playbackBG2
: background.productionBG2
}
headerType="NONE"
>
<MusicLandHeader onPressBack={goBack} progress={100} />
<View style={{ flex: 1, paddingTop: responsiveHeight(15) }}>
<CreateLyricsHeader
@@ -41,7 +52,7 @@ const SongDownloaded = () => {
textAlign: "center",
}}
>
Chanson téléchargée !
{action === "playback" ? "Playback" : "Chanson"} téléchargée !
</Text>
<Text
style={{
@@ -50,8 +61,9 @@ const SongDownloaded = () => {
fontFamily: FONT_FAMILY.InterMedium,
}}
>
Ta chanson est désormais téléchargée dans tes fichiers. Nhésite
pas à la partager avec tes proches.
{action === "playback" ? "Ton Playback" : "Ta Chanson"} est
désormais téléchargée dans tes fichiers. Nhésite pas à la
partager avec tes proches.
</Text>
</View>
<View
+16 -5
View File
@@ -12,10 +12,21 @@ import { FONT_FAMILY } from "../../styles/Fonts";
import BorderGradientButton from "../../components/BorderGradientButton";
import GradientButton from "../../components/GradientButton";
import { Routes } from "../../navigation";
import { useRoute } from "@react-navigation/core";
const SongRelease = () => {
const params = useRoute().params;
const action = params?.action;
return (
<Page backgroundImg={background.productionBG2} headerType="NONE">
<Page
backgroundImg={
action === "playback"
? background.playbackBG2
: background.productionBG2
}
headerType="NONE"
>
<MusicLandHeader onPressBack={goBack} progress={100} />
<View style={{ flex: 1, paddingTop: responsiveHeight(15) }}>
<CreateLyricsHeader
@@ -41,7 +52,7 @@ const SongRelease = () => {
textAlign: "center",
}}
>
Chanson publiée!
{action === "playback" ? "Playback" : "Chanson"} publiée !
</Text>
<Text
style={{
@@ -50,9 +61,9 @@ const SongRelease = () => {
fontFamily: FONT_FAMILY.InterMedium,
}}
>
Ta chanson est désormais accessible sur lapplication et les
réseaux sociaux de MusicLand. Nhésite pas à la partager avec tes
proches.
{action === "playback" ? "Ton Playback" : "Ta Chanson"} est
désormais accessible sur lapplication et les réseaux sociaux de
MusicLand. Nhésite pas à la partager avec tes proches.
</Text>
</View>
<View
+35 -3
View File
@@ -10,6 +10,7 @@ import Style, { size } from "../../styles/Style";
import { Palette } from "../../styles";
import { FONT_FAMILY } from "../../styles/Fonts";
import { Routes } from "../../navigation";
import { useRoute } from "@react-navigation/core";
const STREAM_PRICES = [
{
@@ -29,11 +30,40 @@ const STREAM_PRICES = [
},
];
const PLAYBACK_STREAM_PRICES = [
{
title: "Je créer et diffuse mon Playback",
description: "Ce morceau uniquement",
price: "6,99€ / mois",
},
{
title: "3 Playbacks",
description: "Ce morceau et les 2 prochains que tu crées",
price: "12,99€ / mois",
},
{
title: "Illimité",
price: "20€ / mois",
recommended: true,
},
];
const StreamSong = () => {
const params = useRoute().params;
const action = params?.action;
const [selectedIndex, setSelectedIndex] = useState(null);
const DATA = action === "playback" ? PLAYBACK_STREAM_PRICES : STREAM_PRICES;
return (
<Page backgroundImg={background.productionBG2} headerType="NONE">
<Page
backgroundImg={
action === "playback"
? background.playbackBG2
: background.productionBG2
}
headerType="NONE"
>
<MusicLandHeader onPressBack={goBack} progress={75} />
<View style={{ flex: 1, paddingTop: responsiveHeight(5) }}>
<CreateLyricsHeader
@@ -77,7 +107,7 @@ const StreamSong = () => {
</Text>
</View>
<View style={{ gap: 10 }}>
{STREAM_PRICES.map((item, index) => (
{DATA.map((item, index) => (
<CreateLyricsHeader
key={index}
colors={
@@ -88,7 +118,9 @@ const StreamSong = () => {
tint={!item.recommended ? "dark" : "light"}
onPress={() => {
setSelectedIndex(index);
navigate(Routes.SongRelease);
navigate(Routes.SongRelease, {
action,
});
}}
>
<View style={{ paddingTop: 5 }}>