react-native-salespanda 0.7.7 → 0.7.8

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 (51) hide show
  1. package/package.json +2 -5
  2. package/src/NativeSalespanda.ts +0 -7
  3. package/src/SalespandaApp.tsx +0 -141
  4. package/src/assets/images/bottomtabs/analytics.png +0 -0
  5. package/src/assets/images/bottomtabs/analyticsactive.png +0 -0
  6. package/src/assets/images/bottomtabs/crm.png +0 -0
  7. package/src/assets/images/bottomtabs/crmactive.png +0 -0
  8. package/src/assets/images/bottomtabs/diary.png +0 -0
  9. package/src/assets/images/bottomtabs/diaryactive.png +0 -0
  10. package/src/assets/images/bottomtabs/home.png +0 -0
  11. package/src/assets/images/bottomtabs/homeactive.png +0 -0
  12. package/src/assets/images/bottomtabs/notification.png +0 -0
  13. package/src/assets/images/bottomtabs/notificationactive.png +0 -0
  14. package/src/assets/images/index.js +0 -11
  15. package/src/assets/images/index.ts +0 -40
  16. package/src/components/BottomSheet.tsx +0 -146
  17. package/src/components/ContactViaModal.tsx +0 -80
  18. package/src/components/Loader.tsx +0 -48
  19. package/src/components/ScreenHeader.tsx +0 -57
  20. package/src/components/SearchBar.tsx +0 -59
  21. package/src/components/TabsHeader.tsx +0 -72
  22. package/src/components/index.ts +0 -5
  23. package/src/config/FlavorConfig.ts +0 -55
  24. package/src/config/SalespandaConfig.ts +0 -142
  25. package/src/constants/Colors.ts +0 -17
  26. package/src/constants/GetPlatorm.ts +0 -29
  27. package/src/index.tsx +0 -31
  28. package/src/navigation/AppNavigator.tsx +0 -24
  29. package/src/navigation/BottomTabNavigator.tsx +0 -181
  30. package/src/navigation/DrawerNavigator.tsx +0 -306
  31. package/src/navigation/StackNavigator.tsx +0 -32
  32. package/src/screens/CRM/AddContactModal.tsx +0 -57
  33. package/src/screens/CRM/CategoryTabs.tsx +0 -109
  34. package/src/screens/CRM/ContactItem.tsx +0 -168
  35. package/src/screens/CRM/FilterDropdown.tsx +0 -34
  36. package/src/screens/CRM/FunnelChart.tsx +0 -103
  37. package/src/screens/CRM/InfoCard.tsx +0 -51
  38. package/src/screens/CRM/LeadCard.tsx +0 -69
  39. package/src/screens/CRM/LogCallScreen.tsx +0 -318
  40. package/src/screens/CRM/TopTabs.tsx +0 -95
  41. package/src/screens/CRM/index.ts +0 -10
  42. package/src/screens/ReportsScreen.tsx +0 -37
  43. package/src/screens/Tabs/ActivityAnalytics.tsx +0 -25
  44. package/src/screens/Tabs/CRMScreen.tsx +0 -381
  45. package/src/screens/Tabs/DigitalDiary.tsx +0 -35
  46. package/src/screens/Tabs/HomeScreen.tsx +0 -379
  47. package/src/screens/Tabs/NotificationsScreen.tsx +0 -25
  48. package/src/screens/contentliberary/contentliberary.tsx +0 -268
  49. package/src/services/api.ts +0 -173
  50. package/src/services/authService.ts +0 -75
  51. package/src/store/index.ts +0 -16
@@ -1,103 +0,0 @@
1
- import {
2
- View,
3
- Text,
4
- StyleSheet,
5
- TouchableOpacity,
6
- Dimensions,
7
- } from 'react-native';
8
- import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
9
- import { Colors } from '../../constants/Colors';
10
-
11
- const { width } = Dimensions.get('window');
12
-
13
- interface FunnelData {
14
- followUp: number;
15
- new: number;
16
- engaged: number;
17
- deal: number;
18
- quoteSent: number;
19
- won: number;
20
- dropped: number;
21
- }
22
-
23
- interface FunnelChartProps {
24
- data: FunnelData;
25
- totalLeads: number;
26
- onListPress?: () => void;
27
- }
28
-
29
- export const FunnelChart: React.FC<FunnelChartProps> = ({
30
- data,
31
- totalLeads,
32
- onListPress,
33
- }) => {
34
- const stages = [
35
- { label: 'Follow Up', value: data.followUp, width: 1.0 },
36
- { label: 'New', value: data.new, width: 0.85 },
37
- { label: 'Engaged', value: data.engaged, width: 0.7 },
38
- { label: 'Deal', value: data.deal, width: 0.55 },
39
- { label: 'Quote sent', value: data.quoteSent, width: 0.4 },
40
- { label: 'Won', value: data.won, width: 0.25 },
41
- { label: 'Dropped', value: data.dropped, width: 0.15 },
42
- ];
43
-
44
- return (
45
- <View style={styles.funnelContainer}>
46
- <View style={styles.funnelHeader}>
47
- <Text style={styles.totalLeadsText}>Total Leads: {totalLeads}</Text>
48
- <TouchableOpacity onPress={onListPress}>
49
- <Text style={styles.listIcon}>☰</Text>
50
- </TouchableOpacity>
51
- </View>
52
- {stages.map((stage, index) => (
53
- <View
54
- key={index}
55
- style={[
56
- styles.funnelStage,
57
- { width: width * 0.8 * stage.width, alignSelf: 'center' },
58
- ]}
59
- >
60
- <Text style={styles.funnelStageText}>
61
- {stage.label}: {stage.value}
62
- </Text>
63
- </View>
64
- ))}
65
- </View>
66
- );
67
- };
68
-
69
- const styles = StyleSheet.create({
70
- funnelContainer: {
71
- backgroundColor: Colors.white,
72
- margin: scale(16),
73
- padding: scale(16),
74
- borderRadius: moderateScale(12),
75
- },
76
- funnelHeader: {
77
- flexDirection: 'row',
78
- justifyContent: 'space-between',
79
- alignItems: 'center',
80
- marginBottom: verticalScale(20),
81
- },
82
- totalLeadsText: {
83
- fontSize: moderateScale(16),
84
- fontWeight: '700',
85
- color: Colors.black,
86
- },
87
- listIcon: {
88
- fontSize: moderateScale(20),
89
- color: Colors.black,
90
- },
91
- funnelStage: {
92
- backgroundColor: '#A5C9CA',
93
- paddingVertical: verticalScale(20),
94
- marginBottom: verticalScale(4),
95
- borderRadius: moderateScale(4),
96
- alignItems: 'center',
97
- },
98
- funnelStageText: {
99
- fontSize: moderateScale(16),
100
- fontWeight: '600',
101
- color: Colors.black,
102
- },
103
- });
@@ -1,51 +0,0 @@
1
- import { View, Text, StyleSheet } from 'react-native';
2
- import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
3
- import { Colors } from '../../constants/Colors';
4
-
5
- interface InfoCardProps {
6
- title?: string;
7
- description?: string;
8
- }
9
-
10
- export const InfoCard: React.FC<InfoCardProps> = ({
11
- title = 'Engaged',
12
- description = 'A Lead that is paying attention to your marketing methods and offers is called Engaged. For example,...',
13
- }) => {
14
- return (
15
- <View style={styles.infoCard}>
16
- <Text style={styles.infoTitle}>{title}</Text>
17
- <Text style={styles.infoDescription}>
18
- {description} <Text style={styles.readMore}>Read More</Text>
19
- </Text>
20
- </View>
21
- );
22
- };
23
-
24
- const styles = StyleSheet.create({
25
- infoCard: {
26
- backgroundColor: Colors.white,
27
- margin: scale(16),
28
- padding: scale(16),
29
- borderRadius: moderateScale(12),
30
- shadowColor: Colors.black,
31
- shadowOffset: { width: 0, height: verticalScale(2) },
32
- shadowOpacity: 0.1,
33
- shadowRadius: moderateScale(4),
34
- elevation: 3,
35
- },
36
- infoTitle: {
37
- fontSize: moderateScale(18),
38
- fontWeight: '700',
39
- color: Colors.black,
40
- marginBottom: verticalScale(8),
41
- },
42
- infoDescription: {
43
- fontSize: moderateScale(14),
44
- color: Colors.black,
45
- lineHeight: verticalScale(20),
46
- },
47
- readMore: {
48
- color: '#FF9800',
49
- fontWeight: '600',
50
- },
51
- });
@@ -1,69 +0,0 @@
1
- import { View, Text, StyleSheet } from 'react-native';
2
- import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
3
- import { Colors } from '../../constants/Colors';
4
-
5
- interface LeadCardProps {
6
- name: string;
7
- email: string;
8
- description: string;
9
- timestamp: string;
10
- }
11
-
12
- export const LeadCard: React.FC<LeadCardProps> = ({
13
- name,
14
- email,
15
- description,
16
- timestamp,
17
- }) => {
18
- return (
19
- <View style={styles.leadCard}>
20
- <Text style={styles.leadName}>{name}</Text>
21
- <Text style={styles.leadEmail}>{email}</Text>
22
- <View style={styles.leadDivider} />
23
- <Text style={styles.leadDescription}>{description}</Text>
24
- <Text style={styles.leadTimestamp}>{timestamp}</Text>
25
- </View>
26
- );
27
- };
28
-
29
- const styles = StyleSheet.create({
30
- leadCard: {
31
- backgroundColor: Colors.white,
32
- margin: scale(16),
33
- marginTop: 0,
34
- marginBottom: verticalScale(16),
35
- padding: scale(16),
36
- borderRadius: moderateScale(12),
37
- shadowColor: Colors.black,
38
- shadowOffset: { width: 0, height: verticalScale(2) },
39
- shadowOpacity: 0.1,
40
- shadowRadius: moderateScale(4),
41
- elevation: 3,
42
- },
43
- leadName: {
44
- fontSize: moderateScale(18),
45
- fontWeight: '700',
46
- color: Colors.black,
47
- marginBottom: verticalScale(6),
48
- },
49
- leadEmail: {
50
- fontSize: moderateScale(14),
51
- color: '#666',
52
- marginBottom: verticalScale(12),
53
- },
54
- leadDivider: {
55
- height: 1,
56
- backgroundColor: '#E0E0E0',
57
- marginVertical: verticalScale(12),
58
- },
59
- leadDescription: {
60
- fontSize: moderateScale(14),
61
- color: Colors.black,
62
- lineHeight: verticalScale(20),
63
- marginBottom: verticalScale(12),
64
- },
65
- leadTimestamp: {
66
- fontSize: moderateScale(13),
67
- color: '#666',
68
- },
69
- });
@@ -1,318 +0,0 @@
1
- import { useState } from 'react';
2
- import {
3
- View,
4
- Text,
5
- StyleSheet,
6
- TouchableOpacity,
7
- ScrollView,
8
- } from 'react-native';
9
- import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
10
- import { SafeAreaView } from 'react-native-safe-area-context';
11
- import { Colors } from '../../constants/Colors';
12
- import { ScreenHeader } from '../../components/ScreenHeader';
13
- import { useNavigation, useRoute } from '@react-navigation/native';
14
- import type { RouteProp } from '@react-navigation/native';
15
- import type { RootStackParamList } from '../../navigation/StackNavigator';
16
-
17
- type LogCallScreenRouteProp = RouteProp<RootStackParamList, 'LogCall'>;
18
-
19
- interface LogCallScreenProps {
20
- visible?: boolean;
21
- onClose?: () => void;
22
- contactName?: string;
23
- contactAvatar?: string;
24
- contactAvatarColor?: string;
25
- onSave?: (outcome: string, leadStage: string, followUpDays: string) => void;
26
- showCrossOnLeft?: boolean;
27
- }
28
-
29
- const callOutcomes = [
30
- 'Interested',
31
- 'Drop',
32
- 'Hold',
33
- 'Call back later',
34
- 'Busy',
35
- 'Other',
36
- ];
37
-
38
- const leadStages = [
39
- 'All',
40
- 'Follow Up',
41
- 'New',
42
- 'Engaged',
43
- 'Deal',
44
- 'Quote sent',
45
- 'Won',
46
- 'Dropped',
47
- ];
48
-
49
- const LogCallScreen: React.FC<LogCallScreenProps> = ({
50
- visible,
51
- onClose,
52
- contactName: propContactName,
53
- contactAvatar: propContactAvatar,
54
- contactAvatarColor: propContactAvatarColor,
55
- onSave,
56
- showCrossOnLeft = false,
57
- } = {}) => {
58
- const navigation = useNavigation();
59
- const route = useRoute<LogCallScreenRouteProp>();
60
-
61
- const contact = route.params?.contact;
62
- const contactName = propContactName || contact?.name || 'Contact';
63
- const contactAvatar = propContactAvatar || contact?.avatarInitial || 'H';
64
- const contactAvatarColor =
65
- propContactAvatarColor || contact?.avatarColor || '#C84B9E';
66
-
67
- const [selectedOutcome, setSelectedOutcome] = useState('Interested');
68
- const [selectedStage, setSelectedStage] = useState('All');
69
- const [selectedFollowUp] = useState('1 day');
70
-
71
- const handleSave = () => {
72
- onSave?.(selectedOutcome, selectedStage, selectedFollowUp);
73
- if (onClose) {
74
- onClose();
75
- } else {
76
- navigation.goBack();
77
- }
78
- };
79
-
80
- const handleBack = () => {
81
- if (onClose) {
82
- onClose();
83
- } else {
84
- navigation.goBack();
85
- }
86
- };
87
-
88
- if (visible === false) return null;
89
-
90
- return (
91
- <SafeAreaView style={styles.container} edges={['top']}>
92
- {/* Header */}
93
- <ScreenHeader
94
- title="Log Call"
95
- onBackPress={handleBack}
96
- showCrossOnLeft={showCrossOnLeft}
97
- />
98
-
99
- <ScrollView style={styles.content}>
100
- {/* Contact Info */}
101
- <View style={styles.contactSection}>
102
- <View
103
- style={[styles.avatar, { backgroundColor: contactAvatarColor }]}
104
- >
105
- <Text style={styles.avatarText}>{contactAvatar}</Text>
106
- </View>
107
- <Text style={styles.contactName}>{contactName}</Text>
108
- </View>
109
-
110
- {/* Follow up task */}
111
- <View style={styles.followUpSection}>
112
- <View style={styles.followUpRow}>
113
- <View style={styles.iconWrapper}>
114
- <Text style={styles.calendarIcon}>📅</Text>
115
- </View>
116
- <Text style={styles.followUpText}>Follow up task</Text>
117
- <TouchableOpacity style={styles.dropdown}>
118
- <Text style={styles.dropdownText}>{selectedFollowUp}</Text>
119
- <Text style={styles.dropdownArrow}>▼</Text>
120
- </TouchableOpacity>
121
- </View>
122
- </View>
123
-
124
- {/* Call outcome */}
125
- <View style={styles.section}>
126
- <Text style={styles.sectionTitle}>Call outcome</Text>
127
- <View style={styles.optionsGrid}>
128
- {callOutcomes.map((outcome) => (
129
- <TouchableOpacity
130
- key={outcome}
131
- style={[
132
- styles.optionButton,
133
- selectedOutcome === outcome && styles.optionButtonSelected,
134
- ]}
135
- onPress={() => setSelectedOutcome(outcome)}
136
- >
137
- <Text
138
- style={[
139
- styles.optionText,
140
- selectedOutcome === outcome && styles.optionTextSelected,
141
- ]}
142
- >
143
- {outcome}
144
- </Text>
145
- </TouchableOpacity>
146
- ))}
147
- </View>
148
- </View>
149
-
150
- {/* Lead stage */}
151
- <View style={styles.section}>
152
- <Text style={styles.sectionTitle}>Lead stage</Text>
153
- <Text style={styles.sectionSubtitle}>
154
- Stage is same as lead stage
155
- </Text>
156
- <View style={styles.optionsGrid}>
157
- {leadStages.map((stage) => (
158
- <TouchableOpacity
159
- key={stage}
160
- style={[
161
- styles.optionButton,
162
- selectedStage === stage && styles.optionButtonSelected,
163
- ]}
164
- onPress={() => setSelectedStage(stage)}
165
- >
166
- <Text
167
- style={[
168
- styles.optionText,
169
- selectedStage === stage && styles.optionTextSelected,
170
- ]}
171
- >
172
- {stage}
173
- </Text>
174
- </TouchableOpacity>
175
- ))}
176
- </View>
177
- </View>
178
- </ScrollView>
179
-
180
- {/* Save Button */}
181
- <View style={styles.footer}>
182
- <TouchableOpacity style={styles.saveButton} onPress={handleSave}>
183
- <Text style={styles.saveButtonText}>Save</Text>
184
- </TouchableOpacity>
185
- </View>
186
- </SafeAreaView>
187
- );
188
- };
189
-
190
- export default LogCallScreen;
191
-
192
- const styles = StyleSheet.create({
193
- container: {
194
- flex: 1,
195
- backgroundColor: Colors.white,
196
- },
197
- content: {
198
- flex: 1,
199
- },
200
- contactSection: {
201
- alignItems: 'center',
202
- paddingVertical: verticalScale(24),
203
- },
204
- avatar: {
205
- width: scale(80),
206
- height: scale(80),
207
- borderRadius: moderateScale(40),
208
- justifyContent: 'center',
209
- alignItems: 'center',
210
- marginBottom: verticalScale(12),
211
- },
212
- avatarText: {
213
- fontSize: moderateScale(36),
214
- fontWeight: '700',
215
- color: Colors.white,
216
- },
217
- contactName: {
218
- fontSize: moderateScale(24),
219
- fontWeight: '700',
220
- color: Colors.black,
221
- },
222
- followUpSection: {
223
- paddingHorizontal: scale(16),
224
- marginBottom: verticalScale(24),
225
- },
226
- followUpRow: {
227
- flexDirection: 'row',
228
- alignItems: 'center',
229
- backgroundColor: '#F5F5F5',
230
- borderRadius: moderateScale(12),
231
- padding: scale(16),
232
- borderWidth: 1,
233
- borderColor: '#E0E0E0',
234
- },
235
- iconWrapper: {
236
- marginRight: scale(12),
237
- },
238
- calendarIcon: {
239
- fontSize: moderateScale(24),
240
- },
241
- followUpText: {
242
- flex: 1,
243
- fontSize: moderateScale(16),
244
- fontWeight: '600',
245
- color: Colors.black,
246
- },
247
- dropdown: {
248
- flexDirection: 'row',
249
- alignItems: 'center',
250
- paddingHorizontal: scale(12),
251
- paddingVertical: verticalScale(6),
252
- },
253
- dropdownText: {
254
- fontSize: moderateScale(16),
255
- color: Colors.black,
256
- marginRight: scale(4),
257
- },
258
- dropdownArrow: {
259
- fontSize: moderateScale(12),
260
- color: Colors.black,
261
- },
262
- section: {
263
- paddingHorizontal: scale(16),
264
- marginBottom: verticalScale(32),
265
- },
266
- sectionTitle: {
267
- fontSize: moderateScale(20),
268
- fontWeight: '700',
269
- color: Colors.black,
270
- marginBottom: verticalScale(8),
271
- },
272
- sectionSubtitle: {
273
- fontSize: moderateScale(14),
274
- color: '#666',
275
- marginBottom: verticalScale(16),
276
- },
277
- optionsGrid: {
278
- flexDirection: 'row',
279
- flexWrap: 'wrap',
280
- gap: scale(12),
281
- },
282
- optionButton: {
283
- paddingHorizontal: scale(20),
284
- paddingVertical: verticalScale(12),
285
- borderRadius: moderateScale(24),
286
- borderWidth: 1,
287
- borderColor: '#E0E0E0',
288
- backgroundColor: Colors.white,
289
- },
290
- optionButtonSelected: {
291
- borderColor: '#FF9800',
292
- borderWidth: 2,
293
- },
294
- optionText: {
295
- fontSize: moderateScale(15),
296
- fontWeight: '500',
297
- color: Colors.black,
298
- },
299
- optionTextSelected: {
300
- color: '#FF9800',
301
- fontWeight: '600',
302
- },
303
- footer: {
304
- padding: scale(16),
305
- paddingBottom: verticalScale(32),
306
- },
307
- saveButton: {
308
- backgroundColor: '#46bdd3',
309
- paddingVertical: verticalScale(16),
310
- borderRadius: moderateScale(12),
311
- alignItems: 'center',
312
- },
313
- saveButtonText: {
314
- fontSize: moderateScale(18),
315
- fontWeight: '700',
316
- color: Colors.white,
317
- },
318
- });
@@ -1,95 +0,0 @@
1
- import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
2
- import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
3
- import { Colors } from '../../constants/Colors';
4
-
5
- interface TopTabsProps {
6
- selectedTab: 'leads' | 'prospects' | 'contacts';
7
- onSelectTab: (tab: 'leads' | 'prospects' | 'contacts') => void;
8
- counts: {
9
- leads: number;
10
- prospects: number;
11
- contacts: number;
12
- };
13
- }
14
-
15
- export const TopTabs: React.FC<TopTabsProps> = ({
16
- selectedTab,
17
- onSelectTab,
18
- counts,
19
- }) => {
20
- return (
21
- <View style={styles.topTabsContainer}>
22
- <TouchableOpacity
23
- style={[styles.topTab, selectedTab === 'leads' && styles.topTabActive]}
24
- onPress={() => onSelectTab('leads')}
25
- >
26
- <Text
27
- style={[
28
- styles.topTabText,
29
- selectedTab === 'leads' && styles.topTabTextActive,
30
- ]}
31
- >
32
- Leads({counts.leads})
33
- </Text>
34
- </TouchableOpacity>
35
- <TouchableOpacity
36
- style={[
37
- styles.topTab,
38
- selectedTab === 'prospects' && styles.topTabActive,
39
- ]}
40
- onPress={() => onSelectTab('prospects')}
41
- >
42
- <Text
43
- style={[
44
- styles.topTabText,
45
- selectedTab === 'prospects' && styles.topTabTextActive,
46
- ]}
47
- >
48
- Prospects({counts.prospects})
49
- </Text>
50
- </TouchableOpacity>
51
- <TouchableOpacity
52
- style={[
53
- styles.topTab,
54
- selectedTab === 'contacts' && styles.topTabActive,
55
- ]}
56
- onPress={() => onSelectTab('contacts')}
57
- >
58
- <Text
59
- style={[
60
- styles.topTabText,
61
- selectedTab === 'contacts' && styles.topTabTextActive,
62
- ]}
63
- >
64
- Contacts({counts.contacts})
65
- </Text>
66
- </TouchableOpacity>
67
- </View>
68
- );
69
- };
70
-
71
- const styles = StyleSheet.create({
72
- topTabsContainer: {
73
- flexDirection: 'row',
74
- backgroundColor: Colors.white,
75
- paddingHorizontal: scale(8),
76
- },
77
- topTab: {
78
- flex: 1,
79
- paddingVertical: verticalScale(16),
80
- alignItems: 'center',
81
- borderBottomWidth: 3,
82
- borderBottomColor: 'transparent',
83
- },
84
- topTabActive: {
85
- borderBottomColor: '#FF9800',
86
- },
87
- topTabText: {
88
- fontSize: moderateScale(16),
89
- fontWeight: '600',
90
- color: Colors.black,
91
- },
92
- topTabTextActive: {
93
- color: '#FF9800',
94
- },
95
- });
@@ -1,10 +0,0 @@
1
- // CRM Screen Components
2
- export { FilterDropdown } from './FilterDropdown';
3
- export { TopTabs } from './TopTabs';
4
- export { InfoCard } from './InfoCard';
5
- export { CategoryTabs } from './CategoryTabs';
6
- export { ContactItem } from './ContactItem';
7
- export { LeadCard } from './LeadCard';
8
- export { FunnelChart } from './FunnelChart';
9
- export { AddContactModal } from './AddContactModal';
10
- export { default as LogCallScreen } from './LogCallScreen';
@@ -1,37 +0,0 @@
1
- import { View, Text, StyleSheet, ScrollView } from 'react-native';
2
- import { scale, moderateScale } from 'react-native-size-matters';
3
- import { SafeAreaView } from 'react-native-safe-area-context';
4
- import { Colors } from '../constants/Colors';
5
-
6
- const ReportsScreen: React.FC = () => {
7
- return (
8
- <SafeAreaView style={styles.container} edges={['bottom']}>
9
- <View style={styles.header}>
10
- <Text style={styles.headerTitle}>Reports</Text>
11
- </View>
12
- <ScrollView style={styles.scrollView} />
13
- </SafeAreaView>
14
- );
15
- };
16
-
17
- export default ReportsScreen;
18
-
19
- const styles = StyleSheet.create({
20
- container: {
21
- flex: 1,
22
- backgroundColor: Colors.background,
23
- },
24
- header: {
25
- backgroundColor: Colors.white,
26
- padding: scale(16),
27
- },
28
- headerTitle: {
29
- fontSize: moderateScale(20),
30
- fontWeight: '600',
31
- color: Colors.black,
32
- textAlign: 'center',
33
- },
34
- scrollView: {
35
- flex: 1,
36
- },
37
- });
@@ -1,25 +0,0 @@
1
- import { StyleSheet, ScrollView } from 'react-native';
2
- import { SafeAreaView } from 'react-native-safe-area-context';
3
- import { Colors } from '../../constants/Colors';
4
- import TabsHeader from '../../components/TabsHeader';
5
-
6
- const ActivityAnalytics: React.FC = () => {
7
- return (
8
- <SafeAreaView style={styles.container} edges={['top', 'bottom']}>
9
- <TabsHeader title="Analytics" />
10
- <ScrollView style={styles.scrollView} />
11
- </SafeAreaView>
12
- );
13
- };
14
-
15
- export default ActivityAnalytics;
16
-
17
- const styles = StyleSheet.create({
18
- container: {
19
- flex: 1,
20
- backgroundColor: Colors.background,
21
- },
22
- scrollView: {
23
- flex: 1,
24
- },
25
- });