react-native-salespanda 0.4.2 → 0.4.3

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 (171) hide show
  1. package/lib/module/SalespandaApp.js +11 -37
  2. package/lib/module/SalespandaApp.js.map +1 -1
  3. package/lib/module/components/BottomSheet.js +141 -0
  4. package/lib/module/components/BottomSheet.js.map +1 -0
  5. package/lib/module/components/ContactViaModal.js +68 -0
  6. package/lib/module/components/ContactViaModal.js.map +1 -0
  7. package/lib/module/components/ScreenHeader.js +63 -0
  8. package/lib/module/components/ScreenHeader.js.map +1 -0
  9. package/lib/module/components/SearchBar.js +57 -0
  10. package/lib/module/components/SearchBar.js.map +1 -0
  11. package/lib/module/components/TabsHeader.js +80 -0
  12. package/lib/module/components/TabsHeader.js.map +1 -0
  13. package/lib/module/components/index.js +8 -0
  14. package/lib/module/components/index.js.map +1 -0
  15. package/lib/module/constants/Colors.js +3 -2
  16. package/lib/module/constants/Colors.js.map +1 -1
  17. package/lib/module/index.js +6 -4
  18. package/lib/module/index.js.map +1 -1
  19. package/lib/module/navigation/AppNavigator.js +5 -4
  20. package/lib/module/navigation/AppNavigator.js.map +1 -1
  21. package/lib/module/navigation/BottomTabNavigator.js +42 -23
  22. package/lib/module/navigation/BottomTabNavigator.js.map +1 -1
  23. package/lib/module/navigation/DrawerNavigator.js +36 -34
  24. package/lib/module/navigation/DrawerNavigator.js.map +1 -1
  25. package/lib/module/navigation/StackNavigator.js +23 -0
  26. package/lib/module/navigation/StackNavigator.js.map +1 -0
  27. package/lib/module/screens/CRM/AddContactModal.js +49 -0
  28. package/lib/module/screens/CRM/AddContactModal.js.map +1 -0
  29. package/lib/module/screens/CRM/CategoryTabs.js +70 -0
  30. package/lib/module/screens/CRM/CategoryTabs.js.map +1 -0
  31. package/lib/module/screens/CRM/ContactItem.js +168 -0
  32. package/lib/module/screens/CRM/ContactItem.js.map +1 -0
  33. package/lib/module/screens/CRM/FilterDropdown.js +39 -0
  34. package/lib/module/screens/CRM/FilterDropdown.js.map +1 -0
  35. package/lib/module/screens/CRM/FunnelChart.js +105 -0
  36. package/lib/module/screens/CRM/FunnelChart.js.map +1 -0
  37. package/lib/module/screens/CRM/InfoCard.js +56 -0
  38. package/lib/module/screens/CRM/InfoCard.js.map +1 -0
  39. package/lib/module/screens/CRM/LeadCard.js +76 -0
  40. package/lib/module/screens/CRM/LeadCard.js.map +1 -0
  41. package/lib/module/screens/CRM/LogCallScreen.js +271 -0
  42. package/lib/module/screens/CRM/LogCallScreen.js.map +1 -0
  43. package/lib/module/screens/CRM/TopTabs.js +63 -0
  44. package/lib/module/screens/CRM/TopTabs.js.map +1 -0
  45. package/lib/module/screens/CRM/index.js +13 -0
  46. package/lib/module/screens/CRM/index.js.map +1 -0
  47. package/lib/module/screens/ReportsScreen.js +6 -4
  48. package/lib/module/screens/ReportsScreen.js.map +1 -1
  49. package/lib/module/screens/Tabs/ActivityAnalytics.js +29 -0
  50. package/lib/module/screens/Tabs/ActivityAnalytics.js.map +1 -0
  51. package/lib/module/screens/Tabs/CRMScreen.js +316 -0
  52. package/lib/module/screens/Tabs/CRMScreen.js.map +1 -0
  53. package/lib/module/screens/Tabs/DigitalDiary.js +39 -0
  54. package/lib/module/screens/Tabs/DigitalDiary.js.map +1 -0
  55. package/lib/module/screens/Tabs/HomeScreen.js +240 -0
  56. package/lib/module/screens/Tabs/HomeScreen.js.map +1 -0
  57. package/lib/module/screens/Tabs/NotificationsScreen.js +29 -0
  58. package/lib/module/screens/Tabs/NotificationsScreen.js.map +1 -0
  59. package/lib/module/screens/contentliberary/contentliberary.js +283 -0
  60. package/lib/module/screens/contentliberary/contentliberary.js.map +1 -0
  61. package/lib/typescript/src/SalespandaApp.d.ts +2 -2
  62. package/lib/typescript/src/SalespandaApp.d.ts.map +1 -1
  63. package/lib/typescript/src/components/BottomSheet.d.ts +16 -0
  64. package/lib/typescript/src/components/BottomSheet.d.ts.map +1 -0
  65. package/lib/typescript/src/components/ContactViaModal.d.ts +13 -0
  66. package/lib/typescript/src/components/ContactViaModal.d.ts.map +1 -0
  67. package/lib/typescript/src/components/ScreenHeader.d.ts +8 -0
  68. package/lib/typescript/src/components/ScreenHeader.d.ts.map +1 -0
  69. package/lib/typescript/src/components/SearchBar.d.ts +8 -0
  70. package/lib/typescript/src/components/SearchBar.d.ts.map +1 -0
  71. package/lib/typescript/src/components/TabsHeader.d.ts +8 -0
  72. package/lib/typescript/src/components/TabsHeader.d.ts.map +1 -0
  73. package/lib/typescript/src/components/index.d.ts +5 -0
  74. package/lib/typescript/src/components/index.d.ts.map +1 -0
  75. package/lib/typescript/src/constants/Colors.d.ts +2 -1
  76. package/lib/typescript/src/constants/Colors.d.ts.map +1 -1
  77. package/lib/typescript/src/index.d.ts +4 -4
  78. package/lib/typescript/src/index.d.ts.map +1 -1
  79. package/lib/typescript/src/navigation/AppNavigator.d.ts +2 -1
  80. package/lib/typescript/src/navigation/AppNavigator.d.ts.map +1 -1
  81. package/lib/typescript/src/navigation/BottomTabNavigator.d.ts +9 -1
  82. package/lib/typescript/src/navigation/BottomTabNavigator.d.ts.map +1 -1
  83. package/lib/typescript/src/navigation/DrawerNavigator.d.ts +3 -1
  84. package/lib/typescript/src/navigation/DrawerNavigator.d.ts.map +1 -1
  85. package/lib/typescript/src/navigation/StackNavigator.d.ts +13 -0
  86. package/lib/typescript/src/navigation/StackNavigator.d.ts.map +1 -0
  87. package/lib/typescript/src/screens/CRM/AddContactModal.d.ts +11 -0
  88. package/lib/typescript/src/screens/CRM/AddContactModal.d.ts.map +1 -0
  89. package/lib/typescript/src/screens/CRM/CategoryTabs.d.ts +7 -0
  90. package/lib/typescript/src/screens/CRM/CategoryTabs.d.ts.map +1 -0
  91. package/lib/typescript/src/screens/CRM/ContactItem.d.ts +19 -0
  92. package/lib/typescript/src/screens/CRM/ContactItem.d.ts.map +1 -0
  93. package/lib/typescript/src/screens/CRM/FilterDropdown.d.ts +6 -0
  94. package/lib/typescript/src/screens/CRM/FilterDropdown.d.ts.map +1 -0
  95. package/lib/typescript/src/screens/CRM/FunnelChart.d.ts +17 -0
  96. package/lib/typescript/src/screens/CRM/FunnelChart.d.ts.map +1 -0
  97. package/lib/typescript/src/screens/CRM/InfoCard.d.ts +7 -0
  98. package/lib/typescript/src/screens/CRM/InfoCard.d.ts.map +1 -0
  99. package/lib/typescript/src/screens/CRM/LeadCard.d.ts +9 -0
  100. package/lib/typescript/src/screens/CRM/LeadCard.d.ts.map +1 -0
  101. package/lib/typescript/src/screens/CRM/LogCallScreen.d.ts +12 -0
  102. package/lib/typescript/src/screens/CRM/LogCallScreen.d.ts.map +1 -0
  103. package/lib/typescript/src/screens/CRM/TopTabs.d.ts +12 -0
  104. package/lib/typescript/src/screens/CRM/TopTabs.d.ts.map +1 -0
  105. package/lib/typescript/src/screens/CRM/index.d.ts +10 -0
  106. package/lib/typescript/src/screens/CRM/index.d.ts.map +1 -0
  107. package/lib/typescript/src/screens/ReportsScreen.d.ts +2 -1
  108. package/lib/typescript/src/screens/ReportsScreen.d.ts.map +1 -1
  109. package/lib/typescript/src/screens/Tabs/ActivityAnalytics.d.ts +3 -0
  110. package/lib/typescript/src/screens/Tabs/ActivityAnalytics.d.ts.map +1 -0
  111. package/lib/typescript/src/screens/Tabs/CRMScreen.d.ts +3 -0
  112. package/lib/typescript/src/screens/Tabs/CRMScreen.d.ts.map +1 -0
  113. package/lib/typescript/src/screens/Tabs/DigitalDiary.d.ts +3 -0
  114. package/lib/typescript/src/screens/Tabs/DigitalDiary.d.ts.map +1 -0
  115. package/lib/typescript/src/screens/Tabs/HomeScreen.d.ts +4 -0
  116. package/lib/typescript/src/screens/Tabs/HomeScreen.d.ts.map +1 -0
  117. package/lib/typescript/src/screens/Tabs/NotificationsScreen.d.ts +3 -0
  118. package/lib/typescript/src/screens/Tabs/NotificationsScreen.d.ts.map +1 -0
  119. package/lib/typescript/src/screens/contentliberary/contentliberary.d.ts +2 -0
  120. package/lib/typescript/src/screens/contentliberary/contentliberary.d.ts.map +1 -0
  121. package/package.json +5 -1
  122. package/src/SalespandaApp.tsx +12 -36
  123. package/src/components/BottomSheet.tsx +146 -0
  124. package/src/components/ContactViaModal.tsx +80 -0
  125. package/src/components/ScreenHeader.tsx +57 -0
  126. package/src/components/SearchBar.tsx +59 -0
  127. package/src/components/TabsHeader.tsx +72 -0
  128. package/src/components/index.ts +5 -0
  129. package/src/constants/Colors.ts +2 -1
  130. package/src/index.tsx +6 -4
  131. package/src/navigation/AppNavigator.tsx +6 -4
  132. package/src/navigation/BottomTabNavigator.tsx +51 -22
  133. package/src/navigation/DrawerNavigator.tsx +38 -33
  134. package/src/navigation/StackNavigator.tsx +32 -0
  135. package/src/screens/CRM/AddContactModal.tsx +57 -0
  136. package/src/screens/CRM/CategoryTabs.tsx +109 -0
  137. package/src/screens/CRM/ContactItem.tsx +168 -0
  138. package/src/screens/CRM/FilterDropdown.tsx +34 -0
  139. package/src/screens/CRM/FunnelChart.tsx +103 -0
  140. package/src/screens/CRM/InfoCard.tsx +51 -0
  141. package/src/screens/CRM/LeadCard.tsx +69 -0
  142. package/src/screens/CRM/LogCallScreen.tsx +318 -0
  143. package/src/screens/CRM/TopTabs.tsx +95 -0
  144. package/src/screens/CRM/index.ts +10 -0
  145. package/src/screens/ReportsScreen.tsx +7 -4
  146. package/src/screens/Tabs/ActivityAnalytics.tsx +25 -0
  147. package/src/screens/Tabs/CRMScreen.tsx +381 -0
  148. package/src/screens/Tabs/DigitalDiary.tsx +35 -0
  149. package/src/screens/Tabs/HomeScreen.tsx +223 -0
  150. package/src/screens/Tabs/NotificationsScreen.tsx +25 -0
  151. package/src/screens/contentliberary/contentliberary.tsx +268 -0
  152. package/lib/module/screens/CRMScreen.js +0 -41
  153. package/lib/module/screens/CRMScreen.js.map +0 -1
  154. package/lib/module/screens/HomeScreen.js +0 -211
  155. package/lib/module/screens/HomeScreen.js.map +0 -1
  156. package/lib/module/screens/NotificationsScreen.js +0 -41
  157. package/lib/module/screens/NotificationsScreen.js.map +0 -1
  158. package/lib/module/screens/ProfileScreen.js +0 -41
  159. package/lib/module/screens/ProfileScreen.js.map +0 -1
  160. package/lib/typescript/src/screens/CRMScreen.d.ts +0 -2
  161. package/lib/typescript/src/screens/CRMScreen.d.ts.map +0 -1
  162. package/lib/typescript/src/screens/HomeScreen.d.ts +0 -2
  163. package/lib/typescript/src/screens/HomeScreen.d.ts.map +0 -1
  164. package/lib/typescript/src/screens/NotificationsScreen.d.ts +0 -2
  165. package/lib/typescript/src/screens/NotificationsScreen.d.ts.map +0 -1
  166. package/lib/typescript/src/screens/ProfileScreen.d.ts +0 -2
  167. package/lib/typescript/src/screens/ProfileScreen.d.ts.map +0 -1
  168. package/src/screens/CRMScreen.tsx +0 -34
  169. package/src/screens/HomeScreen.tsx +0 -201
  170. package/src/screens/NotificationsScreen.tsx +0 -34
  171. package/src/screens/ProfileScreen.tsx +0 -34
@@ -0,0 +1,168 @@
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 ContactItemProps {
6
+ name: string;
7
+ phone?: string;
8
+ email?: string;
9
+ description?: string;
10
+ avatarColor: string;
11
+ avatarInitial: string;
12
+ selected?: boolean;
13
+ onPress?: () => void;
14
+ onSelectToggle?: () => void;
15
+ onReminderPress?: () => void;
16
+ onCallPress?: () => void;
17
+ onMenuPress?: () => void;
18
+ showCheckbox?: boolean;
19
+ showActionButtons?: boolean;
20
+ }
21
+
22
+ export const ContactItem: React.FC<ContactItemProps> = ({
23
+ name,
24
+ phone,
25
+ email,
26
+ description,
27
+ avatarColor,
28
+ avatarInitial,
29
+ selected = false,
30
+ onPress,
31
+ onSelectToggle,
32
+ onReminderPress,
33
+ onCallPress,
34
+ onMenuPress,
35
+ showCheckbox = false,
36
+ showActionButtons = false,
37
+ }) => {
38
+ return (
39
+ <TouchableOpacity
40
+ style={styles.contactItem}
41
+ onPress={onPress}
42
+ activeOpacity={0.7}
43
+ >
44
+ <View style={[styles.avatar, { backgroundColor: avatarColor }]}>
45
+ <Text style={styles.avatarText}>{avatarInitial}</Text>
46
+ </View>
47
+ <View style={styles.contactInfo}>
48
+ <Text style={styles.contactName}>{name}</Text>
49
+ {phone && <Text style={styles.contactPhone}>{phone}</Text>}
50
+ {email && <Text style={styles.contactEmail}>{email}</Text>}
51
+ {description && (
52
+ <Text
53
+ style={styles.contactDescription}
54
+ numberOfLines={1}
55
+ ellipsizeMode="tail"
56
+ >
57
+ {description}
58
+ </Text>
59
+ )}
60
+ </View>
61
+ {showActionButtons && (
62
+ <View style={styles.actionButtons}>
63
+ <TouchableOpacity
64
+ style={styles.actionButton}
65
+ onPress={onReminderPress}
66
+ >
67
+ <Text style={styles.actionIcon}>⏰</Text>
68
+ </TouchableOpacity>
69
+ <TouchableOpacity style={styles.actionButton} onPress={onCallPress}>
70
+ <Text style={styles.actionIcon}>📞</Text>
71
+ </TouchableOpacity>
72
+ <TouchableOpacity style={styles.actionButton} onPress={onMenuPress}>
73
+ <Text style={styles.actionIcon}>⋮</Text>
74
+ </TouchableOpacity>
75
+ </View>
76
+ )}
77
+ {showCheckbox && (
78
+ <TouchableOpacity style={styles.checkbox} onPress={onSelectToggle}>
79
+ <View
80
+ style={[styles.checkboxInner, selected && styles.checkboxSelected]}
81
+ >
82
+ {selected && <Text style={styles.checkmark}>✓</Text>}
83
+ </View>
84
+ </TouchableOpacity>
85
+ )}
86
+ </TouchableOpacity>
87
+ );
88
+ };
89
+
90
+ const styles = StyleSheet.create({
91
+ contactItem: {
92
+ flexDirection: 'row',
93
+ alignItems: 'center',
94
+ backgroundColor: Colors.white,
95
+ padding: scale(16),
96
+ borderBottomWidth: 1,
97
+ borderBottomColor: '#E0E0E0',
98
+ },
99
+ avatar: {
100
+ width: scale(46),
101
+ height: scale(46),
102
+ borderRadius: moderateScale(23),
103
+ justifyContent: 'center',
104
+ alignItems: 'center',
105
+ marginRight: scale(12),
106
+ },
107
+ avatarText: {
108
+ fontSize: moderateScale(24),
109
+ fontWeight: '700',
110
+ color: Colors.white,
111
+ },
112
+ contactInfo: {
113
+ flex: 1,
114
+ },
115
+ contactName: {
116
+ fontSize: moderateScale(16),
117
+ fontWeight: '700',
118
+ color: Colors.black,
119
+ marginBottom: verticalScale(4),
120
+ },
121
+ contactPhone: {
122
+ fontSize: moderateScale(12),
123
+ color: Colors.black,
124
+ marginBottom: verticalScale(2),
125
+ },
126
+ contactEmail: {
127
+ fontSize: moderateScale(12),
128
+ color: '#666',
129
+ marginBottom: verticalScale(4),
130
+ },
131
+ contactDescription: {
132
+ fontSize: moderateScale(12),
133
+ color: Colors.black,
134
+ lineHeight: verticalScale(18),
135
+ },
136
+ actionButtons: {
137
+ flexDirection: 'row',
138
+ alignItems: 'center',
139
+ },
140
+ actionButton: {
141
+ padding: scale(8),
142
+ marginLeft: scale(8),
143
+ },
144
+ actionIcon: {
145
+ fontSize: moderateScale(20),
146
+ color: Colors.black,
147
+ },
148
+ checkbox: {
149
+ padding: scale(8),
150
+ },
151
+ checkboxInner: {
152
+ width: scale(28),
153
+ height: scale(28),
154
+ borderWidth: 2,
155
+ borderColor: '#FF9800',
156
+ borderRadius: moderateScale(4),
157
+ justifyContent: 'center',
158
+ alignItems: 'center',
159
+ },
160
+ checkboxSelected: {
161
+ backgroundColor: '#FF9800',
162
+ },
163
+ checkmark: {
164
+ color: Colors.white,
165
+ fontSize: moderateScale(16),
166
+ fontWeight: '700',
167
+ },
168
+ });
@@ -0,0 +1,34 @@
1
+ import { Text, StyleSheet, TouchableOpacity } from 'react-native';
2
+ import { scale, moderateScale } from 'react-native-size-matters';
3
+
4
+ interface FilterDropdownProps {
5
+ onPress?: () => void;
6
+ }
7
+
8
+ export const FilterDropdown: React.FC<FilterDropdownProps> = ({ onPress }) => {
9
+ return (
10
+ <TouchableOpacity style={styles.filterButton} onPress={onPress}>
11
+ <Text style={styles.filterText}>Filter By</Text>
12
+ <Text style={styles.filterArrow}>▼</Text>
13
+ </TouchableOpacity>
14
+ );
15
+ };
16
+
17
+ const styles = StyleSheet.create({
18
+ filterButton: {
19
+ flexDirection: 'row',
20
+ alignItems: 'center',
21
+ justifyContent: 'flex-end',
22
+ paddingHorizontal: scale(16),
23
+ },
24
+ filterText: {
25
+ fontSize: moderateScale(16),
26
+ fontWeight: '600',
27
+ color: '#FF9800',
28
+ marginRight: scale(4),
29
+ },
30
+ filterArrow: {
31
+ fontSize: moderateScale(12),
32
+ color: '#FF9800',
33
+ },
34
+ });
@@ -0,0 +1,103 @@
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
+ });
@@ -0,0 +1,51 @@
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
+ });
@@ -0,0 +1,69 @@
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
+ });