stripe and small fixes
This commit is contained in:
+16
-38
@@ -403,54 +403,32 @@ export const VOICE = [
|
|||||||
{
|
{
|
||||||
title: 'BASE',
|
title: 'BASE',
|
||||||
data: [
|
data: [
|
||||||
'Une voix féminine interprétera ta chanson.',
|
'Une voix féminine',
|
||||||
'Une voix masculine interprétera ta chanson.',
|
'Une voix masculine',
|
||||||
'Deux voix pour interpréter ta chanson.',
|
'Deux voix',
|
||||||
'Solo vocal puissant et dramatique.',
|
'Un couplet rap',
|
||||||
'Un chœur gospel pour (dimension spirituelle ou émotionnelle).',
|
'Voix parlée',
|
||||||
'Un cri brut et puissant (émotion intense).',
|
|
||||||
'Un couplet interprété en rap.',
|
|
||||||
'Voix qui raconte une histoire, souvent sans chanter.',
|
|
||||||
'Paroles déclamées plutôt que chantées, souvent dans un style poétique ou de slam.',
|
|
||||||
'Technique vocale entre parler et chanter, typique de la musique expressionniste.',
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'SENSIBILITÉ',
|
title: 'SENSIBILITÉ',
|
||||||
data: [
|
data: [
|
||||||
'Voix séduisante et sensuelle.',
|
'Voix douce et intime',
|
||||||
'Voix profonde et résonnante.',
|
'Voix profonde et résonnante',
|
||||||
'Voix légère et aérienne.',
|
'Voix légère et aérienne',
|
||||||
'Voix relaxante et sophistiquée.',
|
'Voix sensuelle et chaleureuse',
|
||||||
'Voix synthétique.',
|
'Voix énergique et puissante',
|
||||||
'Voix découpées pour un style EDM ou future bass.',
|
|
||||||
'Effet de distorsion (rendu + agressif).',
|
|
||||||
'Slam (Chant parlé).',
|
|
||||||
'Rap moderne.',
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'TECHNIQUE',
|
title: 'TECHNIQUE',
|
||||||
data: [
|
data: [
|
||||||
"Chant chargé d'émotion.",
|
"Chant chargé d'émotion",
|
||||||
'Technique vocale rugueuse pour le métal ou le rock.',
|
'Chant en murmure',
|
||||||
'Voix robotisée ou mécanique, genres électro ou futuristes.',
|
'Voix robotisée',
|
||||||
'Voix étrange (atmosphère de science-fiction ou de mystère).',
|
'Multiples voix superposées',
|
||||||
'Voix grave et intimidante (effet dramatique).',
|
'Voix rauque et granuleuse',
|
||||||
'Voix pure et céleste, évoquant la tranquillité ou le divin.',
|
'Voix aiguë et brillante',
|
||||||
"Voix douce et aérienne, avec une touche d'intimité.",
|
|
||||||
'Voix chantée dans une tonalité plus aiguë que la normale.',
|
|
||||||
"Voix d'enfant (+ d'innocence).",
|
|
||||||
'Chant en murmure (+ intime).',
|
|
||||||
'Multiples voix superposées (effet harmonique riche).',
|
|
||||||
'Voix légère et innocente.',
|
|
||||||
'Voix soprano puissante (style opéra).',
|
|
||||||
'Chant puissant (styles pop et Broadway).',
|
|
||||||
'Mélange subtil de chuchotements et d’harmoniques.',
|
|
||||||
'Voix rauque et granuleuse, utilisée dans le blues ou le rock.',
|
|
||||||
'Chœur avec une tonalité légère et céleste.',
|
|
||||||
'Inspiration et expiration sonores (effets dramatiques).',
|
|
||||||
'Changements de volume ou de tonalité dans une même phrase.',
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { loadStripe } from '@stripe/stripe-js'
|
|||||||
import * as WebBrowser from 'expo-web-browser'
|
import * as WebBrowser from 'expo-web-browser'
|
||||||
import Overlay from '../components/Overlay'
|
import Overlay from '../components/Overlay'
|
||||||
import Button from '../components/Button'
|
import Button from '../components/Button'
|
||||||
import useLayoutType from '../hooks/useLayoutType'
|
import { Palette } from '../styles'
|
||||||
import { mainBorderRadius } from '../styles/Style'
|
import { mainBorderRadius } from '../styles/Style'
|
||||||
import { STRIPE_PUBLISHABLE_KEY_LIVE, STRIPE_PUBLISHABLE_KEY_TEST } from '../data/keys'
|
import { STRIPE_PUBLISHABLE_KEY_LIVE, STRIPE_PUBLISHABLE_KEY_TEST } from '../data/keys'
|
||||||
import { getFunctionsClient } from '../config/firebase'
|
import { getFunctionsClient } from '../config/firebase'
|
||||||
@@ -81,7 +81,6 @@ export const useStripe = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const StripeProvider = ({ children }) => {
|
const StripeProvider = ({ children }) => {
|
||||||
const { isMobile } = useLayoutType()
|
|
||||||
const { currentUserData } = useUserData() || {}
|
const { currentUserData } = useUserData() || {}
|
||||||
const canUseEmbeddedCheckout = isWeb && Boolean(stripePromise)
|
const canUseEmbeddedCheckout = isWeb && Boolean(stripePromise)
|
||||||
|
|
||||||
@@ -373,18 +372,13 @@ const StripeProvider = ({ children }) => {
|
|||||||
return (
|
return (
|
||||||
<StripeContext.Provider value={providerValue}>
|
<StripeContext.Provider value={providerValue}>
|
||||||
{children}
|
{children}
|
||||||
<Overlay isVisible={clientSecret !== null} setIsVisible={closeEmbeddedCheckout}>
|
<Overlay
|
||||||
<View style={[StyleSheet.absoluteFillObject, styles.overlayContent]}>
|
isVisible={clientSecret !== null}
|
||||||
<View
|
setIsVisible={closeEmbeddedCheckout}
|
||||||
style={[
|
contentContainerStyle={styles.overlayContentFull}
|
||||||
styles.embeddedWrapper,
|
|
||||||
{
|
|
||||||
width: isMobile ? '99%' : '95%',
|
|
||||||
height: isMobile ? '92vh' : '96vh',
|
|
||||||
maxWidth: isMobile ? '100%' : '1400px',
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
>
|
>
|
||||||
|
<View style={[StyleSheet.absoluteFillObject, styles.overlayContent]}>
|
||||||
|
<View style={[styles.embeddedWrapper, styles.embeddedWrapperFull]}>
|
||||||
{clientSecret && stripePromise ? (
|
{clientSecret && stripePromise ? (
|
||||||
<EmbeddedCheckoutProvider stripe={stripePromise} options={{ clientSecret }}>
|
<EmbeddedCheckoutProvider stripe={stripePromise} options={{ clientSecret }}>
|
||||||
<EmbeddedCheckout
|
<EmbeddedCheckout
|
||||||
@@ -396,7 +390,14 @@ const StripeProvider = ({ children }) => {
|
|||||||
</EmbeddedCheckoutProvider>
|
</EmbeddedCheckoutProvider>
|
||||||
) : null}
|
) : null}
|
||||||
</View>
|
</View>
|
||||||
<Button type="secondary" isAbsoluteBottom text="Fermer" onPress={closeEmbeddedCheckout} />
|
<Button
|
||||||
|
type="primary"
|
||||||
|
isAbsoluteBottom
|
||||||
|
text="Fermer"
|
||||||
|
onPress={closeEmbeddedCheckout}
|
||||||
|
containerStyle={styles.closeButton}
|
||||||
|
textStyle={styles.closeButtonText}
|
||||||
|
/>
|
||||||
</View>
|
</View>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
</StripeContext.Provider>
|
</StripeContext.Provider>
|
||||||
@@ -409,11 +410,37 @@ const styles = StyleSheet.create({
|
|||||||
justifyContent: 'center',
|
justifyContent: 'center',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
},
|
},
|
||||||
|
overlayContentFull: {
|
||||||
|
justifyContent: 'flex-start',
|
||||||
|
alignItems: 'stretch',
|
||||||
|
},
|
||||||
embeddedWrapper: {
|
embeddedWrapper: {
|
||||||
alignSelf: 'center',
|
alignSelf: 'center',
|
||||||
borderRadius: mainBorderRadius,
|
borderRadius: mainBorderRadius,
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
},
|
},
|
||||||
|
embeddedWrapperFull: {
|
||||||
|
width: '100%',
|
||||||
|
height: '100%',
|
||||||
|
maxWidth: '100%',
|
||||||
|
borderRadius: 0,
|
||||||
|
alignSelf: 'stretch',
|
||||||
|
},
|
||||||
|
closeButton: {
|
||||||
|
height: 56,
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: Palette.white,
|
||||||
|
shadowColor: Palette.primary,
|
||||||
|
shadowOpacity: 0.6,
|
||||||
|
shadowRadius: 10,
|
||||||
|
shadowOffset: { width: 0, height: 6 },
|
||||||
|
elevation: 6,
|
||||||
|
},
|
||||||
|
closeButtonText: {
|
||||||
|
color: Palette.white,
|
||||||
|
fontSize: 16,
|
||||||
|
letterSpacing: 0.3,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
export default StripeProvider
|
export default StripeProvider
|
||||||
|
|||||||
@@ -489,7 +489,7 @@ const HitParade = () => {
|
|||||||
fontFamily: FONT_FAMILY.HelveticaNeueBold,
|
fontFamily: FONT_FAMILY.HelveticaNeueBold,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Chansons
|
Chansons librairie
|
||||||
</Text>
|
</Text>
|
||||||
{/* </BorderGradient> */}
|
{/* </BorderGradient> */}
|
||||||
</BlurView>
|
</BlurView>
|
||||||
|
|||||||
@@ -98,8 +98,9 @@ const PublishYoutube = () => {
|
|||||||
}
|
}
|
||||||
setSaving(true)
|
setSaving(true)
|
||||||
try {
|
try {
|
||||||
const publishCallable = firebase.functions().httpsCallable('youtube-publishPlaybackToYoutube')
|
// publication sur youtube en standby
|
||||||
await publishCallable({ projectId })
|
// const publishCallable = firebase.functions().httpsCallable('youtube-publishPlaybackToYoutube')
|
||||||
|
// await publishCallable({ projectId })
|
||||||
setTooltip?.({
|
setTooltip?.({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
text: 'Publication lancée sur YouTube',
|
text: 'Publication lancée sur YouTube',
|
||||||
|
|||||||
Reference in New Issue
Block a user