stripe and small fixes

This commit is contained in:
2026-02-12 11:26:14 +01:00
parent 490698cb92
commit 32331d8b2b
4 changed files with 61 additions and 55 deletions
+16 -38
View File
@@ -403,54 +403,32 @@ export const VOICE = [
{
title: 'BASE',
data: [
'Une voix féminine interprétera ta chanson.',
'Une voix masculine interprétera ta chanson.',
'Deux voix pour interpréter ta chanson.',
'Solo vocal puissant et dramatique.',
'Un chœur gospel pour (dimension spirituelle ou émotionnelle).',
'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.',
'Une voix féminine',
'Une voix masculine',
'Deux voix',
'Un couplet rap',
'Voix parlée',
],
},
{
title: 'SENSIBILITÉ',
data: [
'Voix séduisante et sensuelle.',
'Voix profonde et résonnante.',
'Voix légère et aérienne.',
'Voix relaxante et sophistiquée.',
'Voix synthétique.',
'Voix découpées pour un style EDM ou future bass.',
'Effet de distorsion (rendu + agressif).',
'Slam (Chant parlé).',
'Rap moderne.',
'Voix douce et intime',
'Voix profonde et résonnante',
'Voix légère et aérienne',
'Voix sensuelle et chaleureuse',
'Voix énergique et puissante',
],
},
{
title: 'TECHNIQUE',
data: [
"Chant chargé d'émotion.",
'Technique vocale rugueuse pour le métal ou le rock.',
'Voix robotisée ou mécanique, genres électro ou futuristes.',
'Voix étrange (atmosphère de science-fiction ou de mystère).',
'Voix grave et intimidante (effet dramatique).',
'Voix pure et céleste, évoquant la tranquillité ou le divin.',
"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 dharmoniques.',
'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.',
"Chant chargé d'émotion",
'Chant en murmure',
'Voix robotisée',
'Multiples voix superposées',
'Voix rauque et granuleuse',
'Voix aiguë et brillante',
],
},
]
+41 -14
View File
@@ -5,7 +5,7 @@ import { loadStripe } from '@stripe/stripe-js'
import * as WebBrowser from 'expo-web-browser'
import Overlay from '../components/Overlay'
import Button from '../components/Button'
import useLayoutType from '../hooks/useLayoutType'
import { Palette } from '../styles'
import { mainBorderRadius } from '../styles/Style'
import { STRIPE_PUBLISHABLE_KEY_LIVE, STRIPE_PUBLISHABLE_KEY_TEST } from '../data/keys'
import { getFunctionsClient } from '../config/firebase'
@@ -81,7 +81,6 @@ export const useStripe = () => {
}
const StripeProvider = ({ children }) => {
const { isMobile } = useLayoutType()
const { currentUserData } = useUserData() || {}
const canUseEmbeddedCheckout = isWeb && Boolean(stripePromise)
@@ -373,18 +372,13 @@ const StripeProvider = ({ children }) => {
return (
<StripeContext.Provider value={providerValue}>
{children}
<Overlay isVisible={clientSecret !== null} setIsVisible={closeEmbeddedCheckout}>
<View style={[StyleSheet.absoluteFillObject, styles.overlayContent]}>
<View
style={[
styles.embeddedWrapper,
{
width: isMobile ? '99%' : '95%',
height: isMobile ? '92vh' : '96vh',
maxWidth: isMobile ? '100%' : '1400px',
},
]}
<Overlay
isVisible={clientSecret !== null}
setIsVisible={closeEmbeddedCheckout}
contentContainerStyle={styles.overlayContentFull}
>
<View style={[StyleSheet.absoluteFillObject, styles.overlayContent]}>
<View style={[styles.embeddedWrapper, styles.embeddedWrapperFull]}>
{clientSecret && stripePromise ? (
<EmbeddedCheckoutProvider stripe={stripePromise} options={{ clientSecret }}>
<EmbeddedCheckout
@@ -396,7 +390,14 @@ const StripeProvider = ({ children }) => {
</EmbeddedCheckoutProvider>
) : null}
</View>
<Button type="secondary" isAbsoluteBottom text="Fermer" onPress={closeEmbeddedCheckout} />
<Button
type="primary"
isAbsoluteBottom
text="Fermer"
onPress={closeEmbeddedCheckout}
containerStyle={styles.closeButton}
textStyle={styles.closeButtonText}
/>
</View>
</Overlay>
</StripeContext.Provider>
@@ -409,11 +410,37 @@ const styles = StyleSheet.create({
justifyContent: 'center',
alignItems: 'center',
},
overlayContentFull: {
justifyContent: 'flex-start',
alignItems: 'stretch',
},
embeddedWrapper: {
alignSelf: 'center',
borderRadius: mainBorderRadius,
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
+1 -1
View File
@@ -489,7 +489,7 @@ const HitParade = () => {
fontFamily: FONT_FAMILY.HelveticaNeueBold,
}}
>
Chansons
Chansons librairie
</Text>
{/* </BorderGradient> */}
</BlurView>
+3 -2
View File
@@ -98,8 +98,9 @@ const PublishYoutube = () => {
}
setSaving(true)
try {
const publishCallable = firebase.functions().httpsCallable('youtube-publishPlaybackToYoutube')
await publishCallable({ projectId })
// publication sur youtube en standby
// const publishCallable = firebase.functions().httpsCallable('youtube-publishPlaybackToYoutube')
// await publishCallable({ projectId })
setTooltip?.({
type: 'success',
text: 'Publication lancée sur YouTube',