import { View, Text, Image } from 'react-native' import React, { useCallback, useEffect, useState } from 'react' import AppCheckbox from '../../components/AppCheckbox' import Page from '../../layouts/Page' import MusicLandHeader from '../../components/MusicLandHeader' import GradientButton from '../../components/GradientButton' import { background, img } from '../../assets' import { goBack, navigate } from '../../navigation/NavigationService' import useMinuit from 'react-native-minuit/src/hooks/useMinuit.js' import CreateLyricsHeader from '../Writing/components/CreateLyricsHeader' import { responsiveHeight } from 'react-native-responsive-dimensions' import { size } from '../../styles/Style' import { Palette } from '../../styles' import { FONT_FAMILY } from '../../styles/Fonts' import { Routes } from '../../navigation' import { useRoute } from '@react-navigation/native' import { useUser } from '../../providers/UserDataProvider' const StreamSong = () => { const params = useRoute().params const action = params?.action const project = params?.project || null const { hasActiveSubscription } = useUser() || {} const userHasActiveSubscription = hasActiveSubscription const { setTooltip } = useMinuit() const [hasAcceptedPublication, setHasAcceptedPublication] = useState(true) useEffect(() => { if (action && action !== 'playback') { navigate(Routes.SongDownload, { project }) } }, [action, project]) const headingText = 'Publier ton playback' const descriptionText = userHasActiveSubscription ? 'Ton abonnement est actif, publie ton playback et participe au concours.' : 'Pour publier ton playback sur la plateforme, rejoins le Club MusicLand.' const ctaLabel = userHasActiveSubscription ? 'Publier mon playback' : 'Rejoindre le Club MusicLand' const handlePrimaryAction = useCallback(() => { if (!hasAcceptedPublication) { setTooltip({ type: 'error', text: 'Confirme la diffusion sur Musicland et YouTube avant de publier', }) return } if (userHasActiveSubscription) { if (action === 'playback') { setTooltip({ type: 'success', text: 'Playback publié !', }) navigate(Routes.Home) return } navigate(Routes.SongRelease, { action }) return } navigate(Routes.Payments) }, [action, hasAcceptedPublication, setTooltip, userHasActiveSubscription]) return ( {headingText} {descriptionText} setHasAcceptedPublication((prevState) => !prevState)} label="J'accepte la diffusion de mon contenu sur Musicland et YouTube." /> Cette confirmation est requise avant toute mise en ligne. {!userHasActiveSubscription && ( Rejoins le club pour débloquer la publication de tes créations et tenter de grimper dans le classement. )} ) } export default StreamSong