@umituz/react-native-subscription 2.12.3 → 2.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-subscription",
3
- "version": "2.12.3",
3
+ "version": "2.12.5",
4
4
  "description": "Complete subscription management with RevenueCat, paywall UI, and credits system for React Native apps",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -47,7 +47,7 @@
47
47
  "devDependencies": {
48
48
  "@tanstack/react-query": "^5.0.0",
49
49
  "@types/react": "~19.1.10",
50
- "@umituz/react-native-design-system": "^2.3.1",
50
+ "@umituz/react-native-design-system": "*",
51
51
  "@umituz/react-native-firebase": "*",
52
52
  "@umituz/react-native-legal": "*",
53
53
  "@umituz/react-native-localization": "*",
@@ -31,17 +31,32 @@ export const PremiumDetailsCard: React.FC<PremiumDetailsCardProps> = ({
31
31
 
32
32
  return (
33
33
  <View style={[styles.card, { backgroundColor: tokens.colors.surface }]}>
34
- <View style={styles.header}>
35
- <Text style={[styles.title, { color: tokens.colors.text }]}>
36
- {translations.title}
37
- </Text>
38
- <PremiumStatusBadge
39
- status={statusType}
40
- activeLabel={translations.statusActive}
41
- expiredLabel={translations.statusExpired}
42
- noneLabel={translations.statusFree}
43
- />
44
- </View>
34
+ {(isPremium || showCredits) && (
35
+ <View style={styles.header}>
36
+ <Text style={[styles.title, { color: tokens.colors.text }]}>
37
+ {translations.title}
38
+ </Text>
39
+ <PremiumStatusBadge
40
+ status={statusType}
41
+ activeLabel={translations.statusActive}
42
+ expiredLabel={translations.statusExpired}
43
+ noneLabel={translations.statusFree}
44
+ />
45
+ </View>
46
+ )}
47
+
48
+ {!isPremium && !showCredits && (
49
+ <View style={styles.freeUserHeader}>
50
+ <View style={styles.freeUserTextContainer}>
51
+ <Text style={[styles.freeUserTitle, { color: tokens.colors.text }]}>
52
+ {translations.title}
53
+ </Text>
54
+ <Text style={[styles.freeUserDescription, { color: tokens.colors.textSecondary }]}>
55
+ Unlock all features and create unlimited magic
56
+ </Text>
57
+ </View>
58
+ </View>
59
+ )}
45
60
 
46
61
  {isPremium && (
47
62
  <View style={styles.detailsSection}>
@@ -111,11 +126,11 @@ export const PremiumDetailsCard: React.FC<PremiumDetailsCardProps> = ({
111
126
  )}
112
127
  {!isPremium && onUpgrade && translations.upgradeButton && (
113
128
  <TouchableOpacity
114
- style={[styles.primaryButton, { backgroundColor: tokens.colors.primary }]}
129
+ style={[styles.premiumButton, { backgroundColor: tokens.colors.primary }]}
115
130
  onPress={onUpgrade}
116
131
  >
117
132
  <Text
118
- style={[styles.primaryButtonText, { color: tokens.colors.onPrimary }]}
133
+ style={[styles.premiumButtonText, { color: tokens.colors.onPrimary }]}
119
134
  >
120
135
  {translations.upgradeButton}
121
136
  </Text>
@@ -141,6 +156,30 @@ const styles = StyleSheet.create({
141
156
  fontSize: 18,
142
157
  fontWeight: "600",
143
158
  },
159
+ freeUserHeader: {
160
+ marginBottom: 4,
161
+ },
162
+ freeUserTextContainer: {
163
+ gap: 6,
164
+ },
165
+ freeUserTitle: {
166
+ fontSize: 20,
167
+ fontWeight: "700",
168
+ },
169
+ freeUserDescription: {
170
+ fontSize: 15,
171
+ fontWeight: "400",
172
+ lineHeight: 20,
173
+ },
174
+ premiumButton: {
175
+ paddingVertical: 16,
176
+ borderRadius: 12,
177
+ alignItems: "center",
178
+ },
179
+ premiumButtonText: {
180
+ fontSize: 16,
181
+ fontWeight: "700",
182
+ },
144
183
  detailsSection: {
145
184
  gap: 8,
146
185
  },