@sudobility/subscription-components-rn 1.0.4 → 1.0.6

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/dist/types.d.ts CHANGED
@@ -138,6 +138,11 @@ export interface SubscriptionStatusConfig {
138
138
  label: string;
139
139
  value: string;
140
140
  }>;
141
+ /** Subscription platform display */
142
+ platform?: {
143
+ label: string;
144
+ value: 'web' | 'ios' | 'android' | 'macos';
145
+ };
141
146
  };
142
147
  /** Content to display when no active subscription */
143
148
  inactiveContent?: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/subscription-components-rn",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "React Native Subscription UI components for Sudobility with RevenueCat support",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -42,7 +42,17 @@
42
42
  "@types/react": "^18.3.0",
43
43
  "typescript": "^5.6.0",
44
44
  "vite": "^6.0.0",
45
- "vite-plugin-dts": "^4.3.0"
45
+ "vite-plugin-dts": "^4.3.0",
46
+ "react": "^18.3.0",
47
+ "react-native": "^0.76.0",
48
+ "react-test-renderer": "18.3.1",
49
+ "@testing-library/react-native": "^13.3.3",
50
+ "@testing-library/jest-native": "^5.4.3",
51
+ "jest": "^29.7.0",
52
+ "babel-jest": "^29.7.0",
53
+ "@babel/preset-env": "^7.27.0",
54
+ "@babel/preset-react": "^7.28.0",
55
+ "@babel/preset-typescript": "^7.28.0"
46
56
  },
47
57
  "repository": {
48
58
  "type": "git",
@@ -0,0 +1,34 @@
1
+ import { Text } from 'react-native';
2
+
3
+ type PlatformType = 'web' | 'ios' | 'android' | 'macos';
4
+
5
+ interface PlatformIconProps {
6
+ platform: PlatformType;
7
+ className?: string;
8
+ }
9
+
10
+ const PLATFORM_ICONS: Record<PlatformType, string> = {
11
+ web: '🌐',
12
+ ios: '',
13
+ android: '🤖',
14
+ macos: '',
15
+ };
16
+
17
+ const PLATFORM_DISPLAY_NAMES: Record<PlatformType, string> = {
18
+ web: 'Web',
19
+ ios: 'iOS',
20
+ android: 'Android',
21
+ macos: 'macOS',
22
+ };
23
+
24
+ export function PlatformIcon({ platform, className }: PlatformIconProps) {
25
+ return (
26
+ <Text className={className}>
27
+ {PLATFORM_ICONS[platform]}
28
+ </Text>
29
+ );
30
+ }
31
+
32
+ export function platformDisplayName(platform: PlatformType): string {
33
+ return PLATFORM_DISPLAY_NAMES[platform];
34
+ }
@@ -7,6 +7,7 @@ import {
7
7
  ActivityIndicator,
8
8
  } from 'react-native';
9
9
  import { SubscriptionTile } from './SubscriptionTile';
10
+ import { PlatformIcon, platformDisplayName } from './PlatformIcon';
10
11
  import type {
11
12
  FreeTileConfig,
12
13
  SubscriptionLayoutTrackingData,
@@ -137,10 +138,10 @@ export function SubscriptionLayout({
137
138
  </Text>
138
139
 
139
140
  {currentStatus.isActive ? (
140
- <View className='bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-lg p-4'>
141
+ <View className='bg-gray-50 dark:bg-gray-800/30 border border-gray-200 dark:border-gray-700 rounded-lg p-4'>
141
142
  <View className='flex-row items-center mb-2'>
142
143
  <View className='w-3 h-3 bg-green-500 rounded-full mr-3' />
143
- <Text className='font-semibold text-green-800 dark:text-green-300'>
144
+ <Text className='font-semibold text-gray-800 dark:text-gray-200'>
144
145
  {currentStatus.activeContent?.title ||
145
146
  'Active Subscription'}
146
147
  </Text>
@@ -151,10 +152,10 @@ export function SubscriptionLayout({
151
152
  {currentStatus.activeContent.fields.map(
152
153
  (field, index) => (
153
154
  <View key={index}>
154
- <Text className='text-sm text-green-600 dark:text-green-400'>
155
+ <Text className='text-sm text-gray-500 dark:text-gray-400'>
155
156
  {field.label}
156
157
  </Text>
157
- <Text className='font-semibold text-green-800 dark:text-green-300'>
158
+ <Text className='font-semibold text-gray-700 dark:text-gray-300'>
158
159
  {field.value}
159
160
  </Text>
160
161
  </View>
@@ -162,6 +163,22 @@ export function SubscriptionLayout({
162
163
  )}
163
164
  </View>
164
165
  )}
166
+ {currentStatus.activeContent?.platform && (
167
+ <View className='mt-4'>
168
+ <Text className='text-sm text-gray-500 dark:text-gray-400'>
169
+ {currentStatus.activeContent.platform.label}
170
+ </Text>
171
+ <View className='flex-row items-center gap-1.5 mt-0.5'>
172
+ <PlatformIcon
173
+ platform={currentStatus.activeContent.platform.value}
174
+ className='text-gray-600 dark:text-gray-300'
175
+ />
176
+ <Text className='font-semibold text-gray-700 dark:text-gray-300'>
177
+ {platformDisplayName(currentStatus.activeContent.platform.value)}
178
+ </Text>
179
+ </View>
180
+ </View>
181
+ )}
165
182
  </View>
166
183
  ) : (
167
184
  <View className='bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4'>
package/src/types.ts CHANGED
@@ -148,6 +148,11 @@ export interface SubscriptionStatusConfig {
148
148
  label: string;
149
149
  value: string;
150
150
  }>;
151
+ /** Subscription platform display */
152
+ platform?: {
153
+ label: string;
154
+ value: 'web' | 'ios' | 'android' | 'macos';
155
+ };
151
156
  };
152
157
  /** Content to display when no active subscription */
153
158
  inactiveContent?: {