diff --git a/src/screens/Subscriptions.js b/src/screens/Subscriptions.js
index 23b48a8..29dbd41 100644
--- a/src/screens/Subscriptions.js
+++ b/src/screens/Subscriptions.js
@@ -76,6 +76,9 @@ function SubscriptionCard({ plan, selected, onSelect, isAnnual }) {
typeof plan?.coinsPerMonth === 'number' && Number.isFinite(plan.coinsPerMonth)
? Math.round(plan.coinsPerMonth)
: null
+ const details = planKey ? PLAN_DETAILS[planKey] : null
+ const isPopular = details?.popular
+
const planBadgeKey = planKey
const planBadgeSource = planBadgeKey && subBadges[planBadgeKey] ? subBadges[planBadgeKey] : null
const handleSelect = React.useCallback(() => {
@@ -92,6 +95,7 @@ function SubscriptionCard({ plan, selected, onSelect, isAnnual }) {
selected && styles.cardWrapperSelected,
pressed && styles.cardWrapperPressed,
plan?.active === false && styles.cardWrapperInactive,
+ isPopular && styles.cardWrapperPopular,
]}
accessibilityRole="button"
accessibilityState={{ selected, disabled: plan?.active === false }}
@@ -105,6 +109,7 @@ function SubscriptionCard({ plan, selected, onSelect, isAnnual }) {
) : null}
+
{planName}
@@ -127,7 +132,10 @@ function SubscriptionCard({ plan, selected, onSelect, isAnnual }) {
{intervalLabel ? {intervalLabel} : null}
) : null}
- {coinsPerMonth !== null ? (
+
+ {details?.creditsLabel ? (
+ {details.creditsLabel}
+ ) : coinsPerMonth !== null ? (
- • Eligible au concours mensuel chanson/Vidéo
- • Crédits gratuits tous les mois
+ Privilège Membre :
+ {details?.privileges?.map((item, index) => (
+
+
+ {item.bold ? `• ${item.text}` : item.text}
+
+ {item.subItems ? (
+
+ {item.subItems.join(' - ')}
+
+ ) : null}
+
+ )) || (
+ <>
+
+ • Eligible au concours mensuel chanson/Vidéo
+
+ • Crédits gratuits tous les mois
+ >
+ )}
+
+ {isPopular ? (
+
+ Le plus populaire !
+
+ ) : null}
{isAnnual ? (
@@ -208,6 +240,36 @@ const PLAN_DISPLAY_NAME_BY_KEY = {
premium: 'Play Backer Gold',
}
+const PLAN_DETAILS = {
+ starter: {
+ creditsLabel: '50 Crédits / Mois',
+ popular: false,
+ privileges: [
+ { text: 'Eligible au concours mensuel chanson/Vidéo', bold: true },
+ { text: 'Catégorie Chanson :', subItems: ['Top 1: 500 €', 'Top 2: 250 €', 'Top 3: 125 €'] },
+ { text: 'Catégorie Vidéo :', subItems: ['Top 1: 1000 €', 'Top 2: 500 €', 'Top 3: 250 €'] },
+ ],
+ },
+ pro: {
+ creditsLabel: '100 crédits + 50 offerts / Mois',
+ popular: true,
+ privileges: [
+ { text: 'Eligible au concours mensuel chanson/Vidéo', bold: true },
+ { text: 'Catégorie Chanson :', subItems: ['Top 1: 500 €', 'Top 2: 250 €', 'Top 3: 125 €'] },
+ { text: 'Catégorie Vidéo :', subItems: ['Top 1: 1000 €', 'Top 2: 500 €', 'Top 3: 250 €'] },
+ ],
+ },
+ premium: {
+ creditsLabel: '150 Crédits + 100 offerts / Mois',
+ popular: false,
+ privileges: [
+ { text: 'Eligible au concours mensuel chanson/Vidéo', bold: true },
+ { text: 'Catégorie Chanson :', subItems: ['Top 1: 500 €', 'Top 2: 250 €', 'Top 3: 125 €'] },
+ { text: 'Catégorie Vidéo :', subItems: ['Top 1: 1000 €', 'Top 2: 500 €', 'Top 3: 250 €'] },
+ ],
+ },
+}
+
const getPlanKeyForBadge = (plan) => {
if (!plan || typeof plan !== 'object') {
return null
@@ -621,7 +683,7 @@ export default function Subscriptions() {