react-native-salespanda 0.1.0 → 0.2.0

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.
Files changed (45) hide show
  1. package/lib/module/index.js +9 -0
  2. package/lib/module/index.js.map +1 -1
  3. package/lib/module/navigation/AppNavigator.js +11 -0
  4. package/lib/module/navigation/AppNavigator.js.map +1 -0
  5. package/lib/module/navigation/BottomTabNavigator.js +88 -0
  6. package/lib/module/navigation/BottomTabNavigator.js.map +1 -0
  7. package/lib/module/navigation/DrawerNavigator.js +217 -0
  8. package/lib/module/navigation/DrawerNavigator.js.map +1 -0
  9. package/lib/module/screens/HomeScreen.js +0 -52
  10. package/lib/module/screens/HomeScreen.js.map +1 -1
  11. package/lib/module/screens/NotificationsScreen.js +127 -0
  12. package/lib/module/screens/NotificationsScreen.js.map +1 -0
  13. package/lib/module/screens/PremiumScreen.js +222 -0
  14. package/lib/module/screens/PremiumScreen.js.map +1 -0
  15. package/lib/module/screens/ProfileScreen.js +147 -0
  16. package/lib/module/screens/ProfileScreen.js.map +1 -0
  17. package/lib/module/screens/ReportsScreen.js +217 -0
  18. package/lib/module/screens/ReportsScreen.js.map +1 -0
  19. package/lib/typescript/src/index.d.ts +7 -0
  20. package/lib/typescript/src/index.d.ts.map +1 -1
  21. package/lib/typescript/src/navigation/AppNavigator.d.ts +2 -0
  22. package/lib/typescript/src/navigation/AppNavigator.d.ts.map +1 -0
  23. package/lib/typescript/src/navigation/BottomTabNavigator.d.ts +2 -0
  24. package/lib/typescript/src/navigation/BottomTabNavigator.d.ts.map +1 -0
  25. package/lib/typescript/src/navigation/DrawerNavigator.d.ts +2 -0
  26. package/lib/typescript/src/navigation/DrawerNavigator.d.ts.map +1 -0
  27. package/lib/typescript/src/screens/HomeScreen.d.ts.map +1 -1
  28. package/lib/typescript/src/screens/NotificationsScreen.d.ts +2 -0
  29. package/lib/typescript/src/screens/NotificationsScreen.d.ts.map +1 -0
  30. package/lib/typescript/src/screens/PremiumScreen.d.ts +2 -0
  31. package/lib/typescript/src/screens/PremiumScreen.d.ts.map +1 -0
  32. package/lib/typescript/src/screens/ProfileScreen.d.ts +2 -0
  33. package/lib/typescript/src/screens/ProfileScreen.d.ts.map +1 -0
  34. package/lib/typescript/src/screens/ReportsScreen.d.ts +2 -0
  35. package/lib/typescript/src/screens/ReportsScreen.d.ts.map +1 -0
  36. package/package.json +10 -1
  37. package/src/index.tsx +9 -0
  38. package/src/navigation/AppNavigator.tsx +10 -0
  39. package/src/navigation/BottomTabNavigator.tsx +64 -0
  40. package/src/navigation/DrawerNavigator.tsx +238 -0
  41. package/src/screens/HomeScreen.tsx +4 -36
  42. package/src/screens/NotificationsScreen.tsx +135 -0
  43. package/src/screens/PremiumScreen.tsx +250 -0
  44. package/src/screens/ProfileScreen.tsx +121 -0
  45. package/src/screens/ReportsScreen.tsx +191 -0
@@ -0,0 +1,250 @@
1
+ import React from 'react';
2
+ import {
3
+ View,
4
+ Text,
5
+ StyleSheet,
6
+ SafeAreaView,
7
+ ScrollView,
8
+ TouchableOpacity,
9
+ } from 'react-native';
10
+
11
+ interface PlanCardProps {
12
+ name: string;
13
+ price: string;
14
+ features: string[];
15
+ highlighted?: boolean;
16
+ }
17
+
18
+ const PlanCard: React.FC<PlanCardProps> = ({
19
+ name,
20
+ price,
21
+ features,
22
+ highlighted = false,
23
+ }) => {
24
+ return (
25
+ <View style={[styles.planCard, highlighted && styles.highlightedPlan]}>
26
+ {highlighted && (
27
+ <View style={styles.popularBadge}>
28
+ <Text style={styles.popularText}>MOST POPULAR</Text>
29
+ </View>
30
+ )}
31
+ <Text style={styles.planName}>{name}</Text>
32
+ <Text style={styles.planPrice}>{price}</Text>
33
+ <Text style={styles.planPeriod}>per month</Text>
34
+
35
+ <View style={styles.features}>
36
+ {features.map((feature, index) => (
37
+ <View key={index} style={styles.featureItem}>
38
+ <Text style={styles.featureIcon}>✓</Text>
39
+ <Text style={styles.featureText}>{feature}</Text>
40
+ </View>
41
+ ))}
42
+ </View>
43
+
44
+ <TouchableOpacity
45
+ style={[
46
+ styles.subscribeButton,
47
+ highlighted && styles.highlightedButton,
48
+ ]}
49
+ >
50
+ <Text
51
+ style={[
52
+ styles.subscribeButtonText,
53
+ highlighted && styles.highlightedButtonText,
54
+ ]}
55
+ >
56
+ Subscribe
57
+ </Text>
58
+ </TouchableOpacity>
59
+ </View>
60
+ );
61
+ };
62
+
63
+ export default function PremiumScreen() {
64
+ return (
65
+ <SafeAreaView style={styles.container}>
66
+ <View style={styles.header}>
67
+ <Text style={styles.headerTitle}>Premium Plans</Text>
68
+ </View>
69
+ <ScrollView style={styles.scrollView}>
70
+ <View style={styles.heroSection}>
71
+ <Text style={styles.heroIcon}>💎</Text>
72
+ <Text style={styles.heroTitle}>Unlock Premium Features</Text>
73
+ <Text style={styles.heroDescription}>
74
+ Get access to exclusive features and tools to grow your business
75
+ </Text>
76
+ </View>
77
+
78
+ <View style={styles.plansContainer}>
79
+ <PlanCard
80
+ name="Basic"
81
+ price="$9.99"
82
+ features={[
83
+ 'Up to 100 contacts',
84
+ '5 campaigns per month',
85
+ 'Basic analytics',
86
+ 'Email support',
87
+ ]}
88
+ />
89
+
90
+ <PlanCard
91
+ name="Professional"
92
+ price="$29.99"
93
+ features={[
94
+ 'Up to 1,000 contacts',
95
+ 'Unlimited campaigns',
96
+ 'Advanced analytics',
97
+ 'Priority support',
98
+ 'Custom branding',
99
+ 'API access',
100
+ ]}
101
+ highlighted={true}
102
+ />
103
+
104
+ <PlanCard
105
+ name="Enterprise"
106
+ price="$99.99"
107
+ features={[
108
+ 'Unlimited contacts',
109
+ 'Unlimited campaigns',
110
+ 'Advanced analytics',
111
+ '24/7 dedicated support',
112
+ 'Custom branding',
113
+ 'API access',
114
+ 'Custom integrations',
115
+ 'White-label solution',
116
+ ]}
117
+ />
118
+ </View>
119
+ </ScrollView>
120
+ </SafeAreaView>
121
+ );
122
+ }
123
+
124
+ const styles = StyleSheet.create({
125
+ container: {
126
+ flex: 1,
127
+ backgroundColor: '#f5f5f5',
128
+ },
129
+ header: {
130
+ backgroundColor: '#fff',
131
+ padding: 16,
132
+ borderBottomWidth: 1,
133
+ borderBottomColor: '#e0e0e0',
134
+ },
135
+ headerTitle: {
136
+ fontSize: 20,
137
+ fontWeight: '600',
138
+ color: '#333',
139
+ textAlign: 'center',
140
+ },
141
+ scrollView: {
142
+ flex: 1,
143
+ },
144
+ heroSection: {
145
+ backgroundColor: '#4a148c',
146
+ padding: 32,
147
+ alignItems: 'center',
148
+ },
149
+ heroIcon: {
150
+ fontSize: 48,
151
+ marginBottom: 16,
152
+ },
153
+ heroTitle: {
154
+ fontSize: 24,
155
+ fontWeight: '700',
156
+ color: '#fff',
157
+ marginBottom: 8,
158
+ textAlign: 'center',
159
+ },
160
+ heroDescription: {
161
+ fontSize: 14,
162
+ color: '#fff',
163
+ textAlign: 'center',
164
+ opacity: 0.9,
165
+ },
166
+ plansContainer: {
167
+ padding: 16,
168
+ },
169
+ planCard: {
170
+ backgroundColor: '#fff',
171
+ borderRadius: 16,
172
+ padding: 24,
173
+ marginBottom: 16,
174
+ borderWidth: 2,
175
+ borderColor: '#e0e0e0',
176
+ },
177
+ highlightedPlan: {
178
+ borderColor: '#4a148c',
179
+ transform: [{ scale: 1.02 }],
180
+ },
181
+ popularBadge: {
182
+ backgroundColor: '#4a148c',
183
+ paddingHorizontal: 12,
184
+ paddingVertical: 6,
185
+ borderRadius: 12,
186
+ alignSelf: 'center',
187
+ marginBottom: 16,
188
+ },
189
+ popularText: {
190
+ color: '#fff',
191
+ fontSize: 10,
192
+ fontWeight: '700',
193
+ },
194
+ planName: {
195
+ fontSize: 24,
196
+ fontWeight: '700',
197
+ color: '#333',
198
+ textAlign: 'center',
199
+ marginBottom: 8,
200
+ },
201
+ planPrice: {
202
+ fontSize: 36,
203
+ fontWeight: '700',
204
+ color: '#4a148c',
205
+ textAlign: 'center',
206
+ },
207
+ planPeriod: {
208
+ fontSize: 14,
209
+ color: '#666',
210
+ textAlign: 'center',
211
+ marginBottom: 24,
212
+ },
213
+ features: {
214
+ marginBottom: 24,
215
+ },
216
+ featureItem: {
217
+ flexDirection: 'row',
218
+ alignItems: 'center',
219
+ marginBottom: 12,
220
+ },
221
+ featureIcon: {
222
+ fontSize: 16,
223
+ color: '#4a148c',
224
+ marginRight: 12,
225
+ fontWeight: '700',
226
+ },
227
+ featureText: {
228
+ fontSize: 14,
229
+ color: '#333',
230
+ },
231
+ subscribeButton: {
232
+ backgroundColor: '#fff',
233
+ borderWidth: 2,
234
+ borderColor: '#4a148c',
235
+ borderRadius: 8,
236
+ padding: 16,
237
+ alignItems: 'center',
238
+ },
239
+ highlightedButton: {
240
+ backgroundColor: '#4a148c',
241
+ },
242
+ subscribeButtonText: {
243
+ fontSize: 16,
244
+ fontWeight: '600',
245
+ color: '#4a148c',
246
+ },
247
+ highlightedButtonText: {
248
+ color: '#fff',
249
+ },
250
+ });
@@ -0,0 +1,121 @@
1
+ import {
2
+ View,
3
+ Text,
4
+ StyleSheet,
5
+ SafeAreaView,
6
+ TouchableOpacity,
7
+ Image,
8
+ } from 'react-native';
9
+
10
+ export default function ProfileScreen() {
11
+ return (
12
+ <SafeAreaView style={styles.container}>
13
+ <View style={styles.header}>
14
+ <Text style={styles.headerTitle}>Profile</Text>
15
+ </View>
16
+ <View style={styles.content}>
17
+ <View style={styles.profileSection}>
18
+ <Image
19
+ source={{ uri: 'https://via.placeholder.com/100x100' }}
20
+ style={styles.avatar}
21
+ />
22
+ <Text style={styles.name}>John Doe</Text>
23
+ <Text style={styles.email}>john.doe@example.com</Text>
24
+ </View>
25
+
26
+ <View style={styles.section}>
27
+ <TouchableOpacity style={styles.menuItem}>
28
+ <Text style={styles.menuItemIcon}>👤</Text>
29
+ <Text style={styles.menuItemText}>Edit Profile</Text>
30
+ </TouchableOpacity>
31
+
32
+ <TouchableOpacity style={styles.menuItem}>
33
+ <Text style={styles.menuItemIcon}>⚙️</Text>
34
+ <Text style={styles.menuItemText}>Settings</Text>
35
+ </TouchableOpacity>
36
+
37
+ <TouchableOpacity style={styles.menuItem}>
38
+ <Text style={styles.menuItemIcon}>🔔</Text>
39
+ <Text style={styles.menuItemText}>Notifications</Text>
40
+ </TouchableOpacity>
41
+
42
+ <TouchableOpacity style={styles.menuItem}>
43
+ <Text style={styles.menuItemIcon}>❓</Text>
44
+ <Text style={styles.menuItemText}>Help & Support</Text>
45
+ </TouchableOpacity>
46
+
47
+ <TouchableOpacity style={styles.menuItem}>
48
+ <Text style={styles.menuItemIcon}>🚪</Text>
49
+ <Text style={styles.menuItemText}>Logout</Text>
50
+ </TouchableOpacity>
51
+ </View>
52
+ </View>
53
+ </SafeAreaView>
54
+ );
55
+ }
56
+
57
+ const styles = StyleSheet.create({
58
+ container: {
59
+ flex: 1,
60
+ backgroundColor: '#f5f5f5',
61
+ },
62
+ header: {
63
+ backgroundColor: '#fff',
64
+ padding: 16,
65
+ borderBottomWidth: 1,
66
+ borderBottomColor: '#e0e0e0',
67
+ },
68
+ headerTitle: {
69
+ fontSize: 20,
70
+ fontWeight: '600',
71
+ color: '#333',
72
+ textAlign: 'center',
73
+ },
74
+ content: {
75
+ flex: 1,
76
+ padding: 16,
77
+ },
78
+ profileSection: {
79
+ backgroundColor: '#fff',
80
+ borderRadius: 12,
81
+ padding: 24,
82
+ alignItems: 'center',
83
+ marginBottom: 16,
84
+ },
85
+ avatar: {
86
+ width: 100,
87
+ height: 100,
88
+ borderRadius: 50,
89
+ marginBottom: 16,
90
+ },
91
+ name: {
92
+ fontSize: 20,
93
+ fontWeight: '600',
94
+ color: '#333',
95
+ marginBottom: 4,
96
+ },
97
+ email: {
98
+ fontSize: 14,
99
+ color: '#666',
100
+ },
101
+ section: {
102
+ backgroundColor: '#fff',
103
+ borderRadius: 12,
104
+ overflow: 'hidden',
105
+ },
106
+ menuItem: {
107
+ flexDirection: 'row',
108
+ alignItems: 'center',
109
+ padding: 16,
110
+ borderBottomWidth: 1,
111
+ borderBottomColor: '#f0f0f0',
112
+ },
113
+ menuItemIcon: {
114
+ fontSize: 24,
115
+ marginRight: 16,
116
+ },
117
+ menuItemText: {
118
+ fontSize: 16,
119
+ color: '#333',
120
+ },
121
+ });
@@ -0,0 +1,191 @@
1
+ import React from 'react';
2
+ import {
3
+ View,
4
+ Text,
5
+ StyleSheet,
6
+ SafeAreaView,
7
+ ScrollView,
8
+ TouchableOpacity,
9
+ } from 'react-native';
10
+
11
+ interface StatCardProps {
12
+ title: string;
13
+ value: string;
14
+ icon: string;
15
+ color: string;
16
+ }
17
+
18
+ const StatCard: React.FC<StatCardProps> = ({ title, value, icon, color }) => {
19
+ return (
20
+ <View style={[styles.statCard, { backgroundColor: color }]}>
21
+ <Text style={styles.statIcon}>{icon}</Text>
22
+ <Text style={styles.statValue}>{value}</Text>
23
+ <Text style={styles.statTitle}>{title}</Text>
24
+ </View>
25
+ );
26
+ };
27
+
28
+ export default function ReportsScreen() {
29
+ return (
30
+ <SafeAreaView style={styles.container}>
31
+ <View style={styles.header}>
32
+ <Text style={styles.headerTitle}>Reports</Text>
33
+ </View>
34
+ <ScrollView style={styles.scrollView}>
35
+ <View style={styles.statsGrid}>
36
+ <StatCard
37
+ title="Total Campaigns"
38
+ value="24"
39
+ icon="📧"
40
+ color="#e3f2fd"
41
+ />
42
+ <StatCard
43
+ title="Active Contacts"
44
+ value="1,234"
45
+ icon="👥"
46
+ color="#f3e5f5"
47
+ />
48
+ <StatCard
49
+ title="Total Views"
50
+ value="5,678"
51
+ icon="👁️"
52
+ color="#e8f5e9"
53
+ />
54
+ <StatCard title="Conversions" value="89" icon="✅" color="#fff3e0" />
55
+ </View>
56
+
57
+ <View style={styles.section}>
58
+ <Text style={styles.sectionTitle}>Recent Activity</Text>
59
+
60
+ <TouchableOpacity style={styles.activityItem}>
61
+ <View style={styles.activityIcon}>
62
+ <Text style={styles.activityIconText}>📊</Text>
63
+ </View>
64
+ <View style={styles.activityContent}>
65
+ <Text style={styles.activityTitle}>Campaign Analytics</Text>
66
+ <Text style={styles.activityDescription}>
67
+ View detailed analytics for your campaigns
68
+ </Text>
69
+ </View>
70
+ </TouchableOpacity>
71
+
72
+ <TouchableOpacity style={styles.activityItem}>
73
+ <View style={styles.activityIcon}>
74
+ <Text style={styles.activityIconText}>📈</Text>
75
+ </View>
76
+ <View style={styles.activityContent}>
77
+ <Text style={styles.activityTitle}>Performance Report</Text>
78
+ <Text style={styles.activityDescription}>
79
+ Monthly performance summary
80
+ </Text>
81
+ </View>
82
+ </TouchableOpacity>
83
+
84
+ <TouchableOpacity style={styles.activityItem}>
85
+ <View style={styles.activityIcon}>
86
+ <Text style={styles.activityIconText}>💰</Text>
87
+ </View>
88
+ <View style={styles.activityContent}>
89
+ <Text style={styles.activityTitle}>Revenue Report</Text>
90
+ <Text style={styles.activityDescription}>
91
+ Track your earnings and revenue
92
+ </Text>
93
+ </View>
94
+ </TouchableOpacity>
95
+ </View>
96
+ </ScrollView>
97
+ </SafeAreaView>
98
+ );
99
+ }
100
+
101
+ const styles = StyleSheet.create({
102
+ container: {
103
+ flex: 1,
104
+ backgroundColor: '#f5f5f5',
105
+ },
106
+ header: {
107
+ backgroundColor: '#fff',
108
+ padding: 16,
109
+ borderBottomWidth: 1,
110
+ borderBottomColor: '#e0e0e0',
111
+ },
112
+ headerTitle: {
113
+ fontSize: 20,
114
+ fontWeight: '600',
115
+ color: '#333',
116
+ textAlign: 'center',
117
+ },
118
+ scrollView: {
119
+ flex: 1,
120
+ },
121
+ statsGrid: {
122
+ flexDirection: 'row',
123
+ flexWrap: 'wrap',
124
+ padding: 8,
125
+ justifyContent: 'space-between',
126
+ },
127
+ statCard: {
128
+ width: '48%',
129
+ padding: 20,
130
+ borderRadius: 12,
131
+ alignItems: 'center',
132
+ marginBottom: 16,
133
+ },
134
+ statIcon: {
135
+ fontSize: 32,
136
+ marginBottom: 8,
137
+ },
138
+ statValue: {
139
+ fontSize: 24,
140
+ fontWeight: '700',
141
+ color: '#333',
142
+ marginBottom: 4,
143
+ },
144
+ statTitle: {
145
+ fontSize: 12,
146
+ color: '#666',
147
+ textAlign: 'center',
148
+ },
149
+ section: {
150
+ padding: 16,
151
+ },
152
+ sectionTitle: {
153
+ fontSize: 18,
154
+ fontWeight: '600',
155
+ color: '#333',
156
+ marginBottom: 16,
157
+ },
158
+ activityItem: {
159
+ backgroundColor: '#fff',
160
+ flexDirection: 'row',
161
+ padding: 16,
162
+ borderRadius: 12,
163
+ marginBottom: 12,
164
+ alignItems: 'center',
165
+ },
166
+ activityIcon: {
167
+ width: 48,
168
+ height: 48,
169
+ borderRadius: 24,
170
+ backgroundColor: '#f5f5f5',
171
+ justifyContent: 'center',
172
+ alignItems: 'center',
173
+ marginRight: 16,
174
+ },
175
+ activityIconText: {
176
+ fontSize: 24,
177
+ },
178
+ activityContent: {
179
+ flex: 1,
180
+ },
181
+ activityTitle: {
182
+ fontSize: 16,
183
+ fontWeight: '600',
184
+ color: '#333',
185
+ marginBottom: 4,
186
+ },
187
+ activityDescription: {
188
+ fontSize: 14,
189
+ color: '#666',
190
+ },
191
+ });