@umituz/react-native-subscription 2.2.25 → 2.2.27

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.2.25",
3
+ "version": "2.2.27",
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",
@@ -63,4 +63,4 @@
63
63
  "README.md",
64
64
  "LICENSE"
65
65
  ]
66
- }
66
+ }
@@ -94,7 +94,7 @@ export const PaywallModal: React.FC<PaywallModalProps> = React.memo(
94
94
  <Modal
95
95
  visible={visible}
96
96
  transparent
97
- animationType="slide"
97
+ animationType="fade"
98
98
  onRequestClose={onClose}
99
99
  >
100
100
  <View style={styles.overlay}>
@@ -161,17 +161,22 @@ PaywallModal.displayName = "PaywallModal";
161
161
  const styles = StyleSheet.create({
162
162
  overlay: {
163
163
  flex: 1,
164
- justifyContent: "flex-end",
164
+ justifyContent: "center",
165
+ alignItems: "center",
166
+ paddingHorizontal: 20,
165
167
  },
166
168
  backdrop: {
167
169
  ...StyleSheet.absoluteFillObject,
168
- backgroundColor: "rgba(0, 0, 0, 0.5)",
170
+ backgroundColor: "rgba(0, 0, 0, 0.85)",
169
171
  },
170
172
  content: {
171
- borderTopLeftRadius: 24,
172
- borderTopRightRadius: 24,
173
- maxHeight: "90%",
174
- flex: 1,
173
+ borderRadius: 32,
174
+ maxHeight: "88%",
175
+ width: "92%",
176
+ maxWidth: 480,
177
+ overflow: "hidden",
178
+ borderWidth: 1,
179
+ borderColor: "rgba(255, 255, 255, 0.08)",
175
180
  },
176
181
  safeArea: {
177
182
  flex: 1,
@@ -135,18 +135,22 @@ SubscriptionModal.displayName = "SubscriptionModal";
135
135
  const styles = StyleSheet.create({
136
136
  container: {
137
137
  flex: 1,
138
+ width: "100%",
138
139
  },
139
140
  scrollView: {
140
141
  flex: 1,
142
+ width: "100%",
141
143
  },
142
144
  scrollContent: {
143
145
  paddingHorizontal: 24,
144
- paddingBottom: 24,
146
+ paddingBottom: 32,
145
147
  flexGrow: 1,
146
148
  },
147
149
  featuresSection: {
148
- borderRadius: 20,
149
- padding: 20,
150
- marginTop: 8,
150
+ borderRadius: 24,
151
+ padding: 24,
152
+ marginTop: 12,
153
+ borderWidth: 1,
154
+ borderColor: "rgba(255, 255, 255, 0.05)",
151
155
  },
152
156
  });
@@ -43,12 +43,19 @@ export const SubscriptionModalOverlay: React.FC<SubscriptionModalOverlayProps> =
43
43
  return (
44
44
  <Modal
45
45
  visible={visible}
46
- transparent={false}
47
- animationType="slide"
46
+ transparent
47
+ animationType="fade"
48
48
  onRequestClose={onClose}
49
49
  >
50
- <View style={[styles.fullscreen, { backgroundColor: tokens.colors.backgroundPrimary }]}>
51
- {children}
50
+ <View style={styles.fullscreenOverlay}>
51
+ <TouchableOpacity
52
+ style={styles.fullscreenBackdrop}
53
+ activeOpacity={1}
54
+ onPress={onClose}
55
+ />
56
+ <View style={[styles.fullscreenContent, { backgroundColor: tokens.colors.surface }]}>
57
+ {children}
58
+ </View>
52
59
  </View>
53
60
  </Modal>
54
61
  );
@@ -93,8 +100,34 @@ const styles = StyleSheet.create({
93
100
  ...StyleSheet.absoluteFillObject,
94
101
  backgroundColor: "rgba(0, 0, 0, 0.6)",
95
102
  },
96
- fullscreen: {
103
+ fullscreenOverlay: {
97
104
  flex: 1,
105
+ justifyContent: "center",
106
+ alignItems: "center",
107
+ paddingHorizontal: 20,
108
+ },
109
+ fullscreenBackdrop: {
110
+ ...StyleSheet.absoluteFillObject,
111
+ backgroundColor: "rgba(0, 0, 0, 0.85)",
112
+ },
113
+ fullscreenContent: {
114
+ width: Math.min(SCREEN_WIDTH * 0.92, 480),
115
+ maxHeight: SCREEN_HEIGHT * 0.88,
116
+ borderRadius: 32,
117
+ overflow: "hidden",
118
+ borderWidth: 1,
119
+ borderColor: "rgba(255, 255, 255, 0.08)",
120
+ ...Platform.select({
121
+ ios: {
122
+ shadowColor: "#000",
123
+ shadowOffset: { width: 0, height: 16 },
124
+ shadowOpacity: 0.5,
125
+ shadowRadius: 32,
126
+ },
127
+ android: {
128
+ elevation: 16,
129
+ },
130
+ }),
98
131
  },
99
132
  bottomSheet: {
100
133
  borderTopLeftRadius: 32,
@@ -105,21 +138,21 @@ const styles = StyleSheet.create({
105
138
  },
106
139
  dialog: {
107
140
  alignSelf: "center",
108
- marginBottom: "auto",
109
- marginTop: "auto",
110
- width: Math.min(SCREEN_WIDTH * 0.9, 450),
111
- maxHeight: SCREEN_HEIGHT * 0.8,
112
- borderRadius: 24,
141
+ width: Math.min(SCREEN_WIDTH * 0.94, 500),
142
+ maxHeight: SCREEN_HEIGHT * 0.85,
143
+ borderRadius: 32,
113
144
  overflow: "hidden",
145
+ borderWidth: 1,
146
+ borderColor: "rgba(255, 255, 255, 0.1)",
114
147
  ...Platform.select({
115
148
  ios: {
116
149
  shadowColor: "#000",
117
- shadowOffset: { width: 0, height: 10 },
118
- shadowOpacity: 0.3,
119
- shadowRadius: 20,
150
+ shadowOffset: { width: 0, height: 12 },
151
+ shadowOpacity: 0.4,
152
+ shadowRadius: 24,
120
153
  },
121
154
  android: {
122
- elevation: 10,
155
+ elevation: 12,
123
156
  },
124
157
  }),
125
158
  },