react-native-salespanda 0.6.0 → 0.7.1
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/README.md +50 -102
- package/package.json +2 -3
- package/lib/module/NativeSalespanda.js.map +0 -1
- package/lib/module/SalespandaApp.js.map +0 -1
- package/lib/module/assets/images/index.js.map +0 -1
- package/lib/module/components/BottomSheet.js.map +0 -1
- package/lib/module/components/ContactViaModal.js.map +0 -1
- package/lib/module/components/Loader.js.map +0 -1
- package/lib/module/components/ScreenHeader.js.map +0 -1
- package/lib/module/components/SearchBar.js.map +0 -1
- package/lib/module/components/TabsHeader.js.map +0 -1
- package/lib/module/components/index.js.map +0 -1
- package/lib/module/config/FlavorConfig.js.map +0 -1
- package/lib/module/config/SalespandaConfig.js.map +0 -1
- package/lib/module/constants/Colors.js.map +0 -1
- package/lib/module/constants/GetPlatorm.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/navigation/AppNavigator.js.map +0 -1
- package/lib/module/navigation/BottomTabNavigator.js.map +0 -1
- package/lib/module/navigation/DrawerNavigator.js.map +0 -1
- package/lib/module/navigation/StackNavigator.js.map +0 -1
- package/lib/module/screens/CRM/AddContactModal.js.map +0 -1
- package/lib/module/screens/CRM/CategoryTabs.js.map +0 -1
- package/lib/module/screens/CRM/ContactItem.js.map +0 -1
- package/lib/module/screens/CRM/FilterDropdown.js.map +0 -1
- package/lib/module/screens/CRM/FunnelChart.js.map +0 -1
- package/lib/module/screens/CRM/InfoCard.js.map +0 -1
- package/lib/module/screens/CRM/LeadCard.js.map +0 -1
- package/lib/module/screens/CRM/LogCallScreen.js.map +0 -1
- package/lib/module/screens/CRM/TopTabs.js.map +0 -1
- package/lib/module/screens/CRM/index.js.map +0 -1
- package/lib/module/screens/ReportsScreen.js.map +0 -1
- package/lib/module/screens/Tabs/ActivityAnalytics.js.map +0 -1
- package/lib/module/screens/Tabs/CRMScreen.js.map +0 -1
- package/lib/module/screens/Tabs/DigitalDiary.js.map +0 -1
- package/lib/module/screens/Tabs/HomeScreen.js.map +0 -1
- package/lib/module/screens/Tabs/NotificationsScreen.js.map +0 -1
- package/lib/module/screens/contentliberary/contentliberary.js.map +0 -1
- package/lib/module/services/api.js.map +0 -1
- package/lib/module/services/authService.js.map +0 -1
- package/lib/module/store/index.js.map +0 -1
- package/lib/typescript/src/NativeSalespanda.d.ts.map +0 -1
- package/lib/typescript/src/SalespandaApp.d.ts.map +0 -1
- package/lib/typescript/src/assets/images/index.d.ts.map +0 -1
- package/lib/typescript/src/components/BottomSheet.d.ts.map +0 -1
- package/lib/typescript/src/components/ContactViaModal.d.ts.map +0 -1
- package/lib/typescript/src/components/Loader.d.ts.map +0 -1
- package/lib/typescript/src/components/ScreenHeader.d.ts.map +0 -1
- package/lib/typescript/src/components/SearchBar.d.ts.map +0 -1
- package/lib/typescript/src/components/TabsHeader.d.ts.map +0 -1
- package/lib/typescript/src/components/index.d.ts.map +0 -1
- package/lib/typescript/src/config/FlavorConfig.d.ts.map +0 -1
- package/lib/typescript/src/config/SalespandaConfig.d.ts.map +0 -1
- package/lib/typescript/src/constants/Colors.d.ts.map +0 -1
- package/lib/typescript/src/constants/GetPlatorm.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/navigation/AppNavigator.d.ts.map +0 -1
- package/lib/typescript/src/navigation/BottomTabNavigator.d.ts.map +0 -1
- package/lib/typescript/src/navigation/DrawerNavigator.d.ts.map +0 -1
- package/lib/typescript/src/navigation/StackNavigator.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/AddContactModal.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/CategoryTabs.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/ContactItem.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/FilterDropdown.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/FunnelChart.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/InfoCard.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/LeadCard.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/LogCallScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/TopTabs.d.ts.map +0 -1
- package/lib/typescript/src/screens/CRM/index.d.ts.map +0 -1
- package/lib/typescript/src/screens/ReportsScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/Tabs/ActivityAnalytics.d.ts.map +0 -1
- package/lib/typescript/src/screens/Tabs/CRMScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/Tabs/DigitalDiary.d.ts.map +0 -1
- package/lib/typescript/src/screens/Tabs/HomeScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/Tabs/NotificationsScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/contentliberary/contentliberary.d.ts.map +0 -1
- package/lib/typescript/src/services/api.d.ts.map +0 -1
- package/lib/typescript/src/services/authService.d.ts.map +0 -1
- package/lib/typescript/src/store/index.d.ts.map +0 -1
- package/src/NativeSalespanda.ts +0 -7
- package/src/SalespandaApp.tsx +0 -141
- package/src/assets/images/bottomtabs/analytics.png +0 -0
- package/src/assets/images/bottomtabs/analyticsactive.png +0 -0
- package/src/assets/images/bottomtabs/crm.png +0 -0
- package/src/assets/images/bottomtabs/crmactive.png +0 -0
- package/src/assets/images/bottomtabs/diary.png +0 -0
- package/src/assets/images/bottomtabs/diaryactive.png +0 -0
- package/src/assets/images/bottomtabs/home.png +0 -0
- package/src/assets/images/bottomtabs/homeactive.png +0 -0
- package/src/assets/images/bottomtabs/notification.png +0 -0
- package/src/assets/images/bottomtabs/notificationactive.png +0 -0
- package/src/assets/images/index.js +0 -11
- package/src/assets/images/index.ts +0 -40
- package/src/components/BottomSheet.tsx +0 -146
- package/src/components/ContactViaModal.tsx +0 -80
- package/src/components/Loader.tsx +0 -48
- package/src/components/ScreenHeader.tsx +0 -57
- package/src/components/SearchBar.tsx +0 -59
- package/src/components/TabsHeader.tsx +0 -72
- package/src/components/index.ts +0 -5
- package/src/config/FlavorConfig.ts +0 -55
- package/src/config/SalespandaConfig.ts +0 -142
- package/src/constants/Colors.ts +0 -17
- package/src/constants/GetPlatorm.ts +0 -29
- package/src/index.tsx +0 -31
- package/src/navigation/AppNavigator.tsx +0 -24
- package/src/navigation/BottomTabNavigator.tsx +0 -181
- package/src/navigation/DrawerNavigator.tsx +0 -306
- package/src/navigation/StackNavigator.tsx +0 -32
- package/src/screens/CRM/AddContactModal.tsx +0 -57
- package/src/screens/CRM/CategoryTabs.tsx +0 -109
- package/src/screens/CRM/ContactItem.tsx +0 -168
- package/src/screens/CRM/FilterDropdown.tsx +0 -34
- package/src/screens/CRM/FunnelChart.tsx +0 -103
- package/src/screens/CRM/InfoCard.tsx +0 -51
- package/src/screens/CRM/LeadCard.tsx +0 -69
- package/src/screens/CRM/LogCallScreen.tsx +0 -318
- package/src/screens/CRM/TopTabs.tsx +0 -95
- package/src/screens/CRM/index.ts +0 -10
- package/src/screens/ReportsScreen.tsx +0 -37
- package/src/screens/Tabs/ActivityAnalytics.tsx +0 -25
- package/src/screens/Tabs/CRMScreen.tsx +0 -381
- package/src/screens/Tabs/DigitalDiary.tsx +0 -35
- package/src/screens/Tabs/HomeScreen.tsx +0 -379
- package/src/screens/Tabs/NotificationsScreen.tsx +0 -25
- package/src/screens/contentliberary/contentliberary.tsx +0 -268
- package/src/services/api.ts +0 -173
- package/src/services/authService.ts +0 -75
- package/src/store/index.ts +0 -16
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
import { useState } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
StyleSheet,
|
|
4
|
-
ScrollView,
|
|
5
|
-
View,
|
|
6
|
-
Text,
|
|
7
|
-
TouchableOpacity,
|
|
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 { SearchBar } from '../../components/SearchBar';
|
|
13
|
-
import { ContactViaModal } from '../../components/ContactViaModal';
|
|
14
|
-
import { useNavigation } from '@react-navigation/native';
|
|
15
|
-
import type { NativeStackNavigationProp } from '@react-navigation/native-stack';
|
|
16
|
-
import type { RootStackParamList } from '../../navigation/StackNavigator';
|
|
17
|
-
import {
|
|
18
|
-
FilterDropdown,
|
|
19
|
-
TopTabs,
|
|
20
|
-
InfoCard,
|
|
21
|
-
CategoryTabs,
|
|
22
|
-
FunnelChart,
|
|
23
|
-
ContactItem,
|
|
24
|
-
LeadCard,
|
|
25
|
-
AddContactModal,
|
|
26
|
-
} from '../CRM';
|
|
27
|
-
import TabsHeader from '../../components/TabsHeader';
|
|
28
|
-
|
|
29
|
-
type CRMScreenNavigationProp = NativeStackNavigationProp<RootStackParamList>;
|
|
30
|
-
|
|
31
|
-
const CRMScreen: React.FC = () => {
|
|
32
|
-
const navigation = useNavigation<CRMScreenNavigationProp>();
|
|
33
|
-
const [selectedTab, setSelectedTab] = useState<
|
|
34
|
-
'leads' | 'prospects' | 'contacts'
|
|
35
|
-
>('leads');
|
|
36
|
-
const [selectedCategory, setSelectedCategory] = useState<
|
|
37
|
-
'all' | 'followUp' | 'new' | 'engaged'
|
|
38
|
-
>('all');
|
|
39
|
-
const [showAddContactModal, setShowAddContactModal] = useState(false);
|
|
40
|
-
const [showContactViaModal, setShowContactViaModal] = useState(false);
|
|
41
|
-
const [selectedContact, setSelectedContact] = useState<any>(null);
|
|
42
|
-
|
|
43
|
-
const tabCounts = {
|
|
44
|
-
leads: 44,
|
|
45
|
-
prospects: 11,
|
|
46
|
-
contacts: 1865,
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const funnelData = {
|
|
50
|
-
followUp: 11,
|
|
51
|
-
new: 44,
|
|
52
|
-
engaged: 0,
|
|
53
|
-
deal: 0,
|
|
54
|
-
quoteSent: 0,
|
|
55
|
-
won: 0,
|
|
56
|
-
dropped: 0,
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
// Sample data for contacts (with phone numbers)
|
|
60
|
-
const contactsData = [
|
|
61
|
-
{
|
|
62
|
-
name: 'Amit',
|
|
63
|
-
phone: '7677777700',
|
|
64
|
-
email: 'amitjai@icc.com',
|
|
65
|
-
avatarColor: '#C8A4C8',
|
|
66
|
-
avatarInitial: 'A',
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: 'Hari',
|
|
70
|
-
phone: '9797445501',
|
|
71
|
-
email: 'harikapoor@icc.com',
|
|
72
|
-
avatarColor: '#8B7C93',
|
|
73
|
-
avatarInitial: 'H',
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
name: 'Garry Kumar',
|
|
77
|
-
phone: '7878565601',
|
|
78
|
-
email: '',
|
|
79
|
-
avatarColor: '#C8A4C8',
|
|
80
|
-
avatarInitial: 'G',
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
name: 'rishabh sharma',
|
|
84
|
-
phone: '08006760073',
|
|
85
|
-
email: 'rishabh.sharma.for.me@gmail.com',
|
|
86
|
-
avatarColor: '#D4E4B4',
|
|
87
|
-
avatarInitial: 'R',
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
name: 'kumara lafosa',
|
|
91
|
-
phone: '6658388899',
|
|
92
|
-
email: 'kumara@mail.com',
|
|
93
|
-
avatarColor: '#B4D4E4',
|
|
94
|
-
avatarInitial: 'K',
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: 'raghvendra vashisht',
|
|
98
|
-
phone: '6987236496',
|
|
99
|
-
email: 'raghavendra@mail.com',
|
|
100
|
-
avatarColor: '#F4C4A4',
|
|
101
|
-
avatarInitial: 'R',
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
name: 'rishabh kumaea',
|
|
105
|
-
phone: '8923764268',
|
|
106
|
-
email: 'rishi@mail.com',
|
|
107
|
-
avatarColor: '#C8A4C8',
|
|
108
|
-
avatarInitial: 'R',
|
|
109
|
-
},
|
|
110
|
-
];
|
|
111
|
-
const prospectsData = [
|
|
112
|
-
{
|
|
113
|
-
name: 'Harry Sharma',
|
|
114
|
-
description: 'Harry Sharma just visited your microsite',
|
|
115
|
-
avatarColor: '#C84B9E',
|
|
116
|
-
avatarInitial: 'H',
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
name: 'Alfred Jones',
|
|
120
|
-
description: 'Alfred Jones just visited your microsite',
|
|
121
|
-
avatarColor: '#8B7C93',
|
|
122
|
-
avatarInitial: 'A',
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
name: 'Mahendra Jee',
|
|
126
|
-
description: 'The prospect is added manually.',
|
|
127
|
-
avatarColor: '#C84B9E',
|
|
128
|
-
avatarInitial: 'M',
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
name: 'Rraghav Vohra',
|
|
132
|
-
description:
|
|
133
|
-
'Rraghav Vohra just visited your microsite by clicking on the content Auto Email "Rraghav\'s Indirect Template Technochimes 13th May"',
|
|
134
|
-
avatarColor: '#9BC75C',
|
|
135
|
-
avatarInitial: 'R',
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
name: 'Mike Jordan',
|
|
139
|
-
description:
|
|
140
|
-
'Mike Jordan just visited your microsite by clicking on the content Auto Email "Rraghav\'s Indirect Template Technochimes 13th May"',
|
|
141
|
-
avatarColor: '#5CB7C7',
|
|
142
|
-
avatarInitial: 'M',
|
|
143
|
-
},
|
|
144
|
-
];
|
|
145
|
-
|
|
146
|
-
// Sample data for leads
|
|
147
|
-
const leadsData = {
|
|
148
|
-
new: [
|
|
149
|
-
{
|
|
150
|
-
name: 'Richa Jaiswall',
|
|
151
|
-
email: 'richa.jaiswal@salespanda.com',
|
|
152
|
-
description: 'Last visited your microsite and filled a Lead.',
|
|
153
|
-
timestamp: '10-Nov-2025 03:42 PM',
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
name: 'Amit',
|
|
157
|
-
email: 'amitjai@icc.com',
|
|
158
|
-
description: 'Last visited your microsite and filled a Lead.',
|
|
159
|
-
timestamp: '18-Sep-2025 11:48 AM',
|
|
160
|
-
},
|
|
161
|
-
],
|
|
162
|
-
followUp: [
|
|
163
|
-
{
|
|
164
|
-
name: 'Harry Sharma',
|
|
165
|
-
email: 'harish.sharma@salespanda.com',
|
|
166
|
-
description: 'Last visited your microsite.',
|
|
167
|
-
timestamp: '27-Jun-2025 06:47 PM',
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
name: 'Alfred Jones',
|
|
171
|
-
email: 'alfred.jones@salespanda.com',
|
|
172
|
-
description: 'Last visited your microsite.',
|
|
173
|
-
timestamp: '15-May-2025 12:11 PM',
|
|
174
|
-
},
|
|
175
|
-
],
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
const renderContent = () => {
|
|
179
|
-
// Prospects tab - always show contact list
|
|
180
|
-
if (selectedTab === 'prospects') {
|
|
181
|
-
return (
|
|
182
|
-
<>
|
|
183
|
-
<SearchBar placeholder="Search by name" />
|
|
184
|
-
{prospectsData.map((contact, index) => (
|
|
185
|
-
<ContactItem
|
|
186
|
-
key={index}
|
|
187
|
-
{...contact}
|
|
188
|
-
showActionButtons={true}
|
|
189
|
-
onReminderPress={() => console.log('Reminder:', contact.name)}
|
|
190
|
-
onCallPress={() => {
|
|
191
|
-
navigation.navigate('LogCall', {
|
|
192
|
-
contact: {
|
|
193
|
-
name: contact.name,
|
|
194
|
-
avatarInitial: contact.avatarInitial,
|
|
195
|
-
avatarColor: contact.avatarColor,
|
|
196
|
-
},
|
|
197
|
-
});
|
|
198
|
-
}}
|
|
199
|
-
onMenuPress={() => {
|
|
200
|
-
setSelectedContact(contact);
|
|
201
|
-
setShowContactViaModal(true);
|
|
202
|
-
}}
|
|
203
|
-
/>
|
|
204
|
-
))}
|
|
205
|
-
</>
|
|
206
|
-
);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// Leads tab - show different content based on category
|
|
210
|
-
if (selectedTab === 'leads') {
|
|
211
|
-
// Show funnel chart only when "All" is selected
|
|
212
|
-
if (selectedCategory === 'all') {
|
|
213
|
-
return (
|
|
214
|
-
<>
|
|
215
|
-
<InfoCard />
|
|
216
|
-
<CategoryTabs
|
|
217
|
-
selectedCategory={selectedCategory}
|
|
218
|
-
onSelectCategory={setSelectedCategory}
|
|
219
|
-
/>
|
|
220
|
-
<FunnelChart data={funnelData} totalLeads={55} />
|
|
221
|
-
</>
|
|
222
|
-
);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// Show lead cards for specific categories
|
|
226
|
-
const categoryData =
|
|
227
|
-
selectedCategory === 'new'
|
|
228
|
-
? leadsData.new
|
|
229
|
-
: selectedCategory === 'followUp'
|
|
230
|
-
? leadsData.followUp
|
|
231
|
-
: [];
|
|
232
|
-
|
|
233
|
-
return (
|
|
234
|
-
<>
|
|
235
|
-
<InfoCard />
|
|
236
|
-
<CategoryTabs
|
|
237
|
-
selectedCategory={selectedCategory}
|
|
238
|
-
onSelectCategory={setSelectedCategory}
|
|
239
|
-
/>
|
|
240
|
-
<View style={styles.totalLeads}>
|
|
241
|
-
<Text style={styles.totalLeadsText}>
|
|
242
|
-
Total Leads: {categoryData.length}
|
|
243
|
-
</Text>
|
|
244
|
-
</View>
|
|
245
|
-
{categoryData.map((lead, index) => (
|
|
246
|
-
<LeadCard key={index} {...lead} />
|
|
247
|
-
))}
|
|
248
|
-
</>
|
|
249
|
-
);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
if (selectedTab === 'contacts') {
|
|
253
|
-
return (
|
|
254
|
-
<>
|
|
255
|
-
<SearchBar placeholder="Search by name, number.." />
|
|
256
|
-
{contactsData.map((contact, index) => (
|
|
257
|
-
<ContactItem key={index} {...contact} showCheckbox={true} />
|
|
258
|
-
))}
|
|
259
|
-
</>
|
|
260
|
-
);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
return null;
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
return (
|
|
267
|
-
<SafeAreaView style={styles.container} edges={['top', 'bottom']}>
|
|
268
|
-
<TabsHeader title="CRM" rightSlot={<FilterDropdown />} />
|
|
269
|
-
|
|
270
|
-
<TopTabs
|
|
271
|
-
selectedTab={selectedTab}
|
|
272
|
-
onSelectTab={setSelectedTab}
|
|
273
|
-
counts={tabCounts}
|
|
274
|
-
/>
|
|
275
|
-
|
|
276
|
-
<ScrollView style={styles.scrollView}>{renderContent()}</ScrollView>
|
|
277
|
-
|
|
278
|
-
{selectedTab === 'contacts' && (
|
|
279
|
-
<TouchableOpacity
|
|
280
|
-
style={styles.fab}
|
|
281
|
-
onPress={() => setShowAddContactModal(true)}
|
|
282
|
-
>
|
|
283
|
-
<Text style={styles.fabIcon}>+</Text>
|
|
284
|
-
</TouchableOpacity>
|
|
285
|
-
)}
|
|
286
|
-
|
|
287
|
-
<AddContactModal
|
|
288
|
-
visible={showAddContactModal}
|
|
289
|
-
onClose={() => setShowAddContactModal(false)}
|
|
290
|
-
onAddManually={() => {
|
|
291
|
-
// Navigate to add manually screen
|
|
292
|
-
console.log('Add manually');
|
|
293
|
-
}}
|
|
294
|
-
onUploadGmail={() => {
|
|
295
|
-
// Handle Gmail contact import
|
|
296
|
-
console.log('Upload Gmail');
|
|
297
|
-
}}
|
|
298
|
-
onUploadPhonebook={() => {
|
|
299
|
-
// Handle phonebook import
|
|
300
|
-
console.log('Upload Phonebook');
|
|
301
|
-
}}
|
|
302
|
-
onUploadCSV={() => {
|
|
303
|
-
// Handle CSV upload
|
|
304
|
-
console.log('Upload CSV');
|
|
305
|
-
}}
|
|
306
|
-
/>
|
|
307
|
-
|
|
308
|
-
<ContactViaModal
|
|
309
|
-
visible={showContactViaModal}
|
|
310
|
-
onClose={() => setShowContactViaModal(false)}
|
|
311
|
-
onCall={() => {
|
|
312
|
-
console.log('Call:', selectedContact?.name);
|
|
313
|
-
// Handle call
|
|
314
|
-
}}
|
|
315
|
-
onWhatsapp={() => {
|
|
316
|
-
console.log('WhatsApp:', selectedContact?.name);
|
|
317
|
-
// Handle WhatsApp
|
|
318
|
-
}}
|
|
319
|
-
onEmail={() => {
|
|
320
|
-
console.log('Email:', selectedContact?.name);
|
|
321
|
-
// Handle email
|
|
322
|
-
}}
|
|
323
|
-
onSMS={() => {
|
|
324
|
-
console.log('SMS:', selectedContact?.name);
|
|
325
|
-
// Handle SMS
|
|
326
|
-
}}
|
|
327
|
-
onAddTask={() => {
|
|
328
|
-
console.log('Add Task for:', selectedContact?.name);
|
|
329
|
-
// Navigate to add task screen
|
|
330
|
-
}}
|
|
331
|
-
onAddNote={() => {
|
|
332
|
-
console.log('Add Note for:', selectedContact?.name);
|
|
333
|
-
// Navigate to add note screen
|
|
334
|
-
}}
|
|
335
|
-
/>
|
|
336
|
-
</SafeAreaView>
|
|
337
|
-
);
|
|
338
|
-
};
|
|
339
|
-
|
|
340
|
-
export default CRMScreen;
|
|
341
|
-
|
|
342
|
-
const styles = StyleSheet.create({
|
|
343
|
-
container: {
|
|
344
|
-
flex: 1,
|
|
345
|
-
backgroundColor: Colors.background,
|
|
346
|
-
},
|
|
347
|
-
scrollView: {
|
|
348
|
-
flex: 1,
|
|
349
|
-
},
|
|
350
|
-
totalLeads: {
|
|
351
|
-
paddingHorizontal: scale(16),
|
|
352
|
-
paddingVertical: verticalScale(12),
|
|
353
|
-
backgroundColor: Colors.white,
|
|
354
|
-
},
|
|
355
|
-
totalLeadsText: {
|
|
356
|
-
fontSize: moderateScale(16),
|
|
357
|
-
fontWeight: '700',
|
|
358
|
-
color: Colors.black,
|
|
359
|
-
},
|
|
360
|
-
fab: {
|
|
361
|
-
position: 'absolute',
|
|
362
|
-
right: scale(16),
|
|
363
|
-
bottom: verticalScale(10),
|
|
364
|
-
width: scale(46),
|
|
365
|
-
height: scale(46),
|
|
366
|
-
borderRadius: moderateScale(28),
|
|
367
|
-
backgroundColor: '#46bdd3',
|
|
368
|
-
justifyContent: 'center',
|
|
369
|
-
alignItems: 'center',
|
|
370
|
-
shadowColor: Colors.black,
|
|
371
|
-
shadowOffset: { width: 0, height: verticalScale(4) },
|
|
372
|
-
shadowOpacity: 0.3,
|
|
373
|
-
shadowRadius: moderateScale(8),
|
|
374
|
-
elevation: 8,
|
|
375
|
-
},
|
|
376
|
-
fabIcon: {
|
|
377
|
-
fontSize: moderateScale(32),
|
|
378
|
-
color: Colors.white,
|
|
379
|
-
fontWeight: '300',
|
|
380
|
-
},
|
|
381
|
-
});
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ScrollView, StyleSheet, Text } 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 DigitalDiary: React.FC = () => {
|
|
7
|
-
return (
|
|
8
|
-
<SafeAreaView style={styles.container} edges={['top', 'bottom']}>
|
|
9
|
-
<TabsHeader title="Digital Diary" />
|
|
10
|
-
<ScrollView contentContainerStyle={styles.content}>
|
|
11
|
-
<Text style={styles.placeholder}>
|
|
12
|
-
Digital Diary content coming soon.
|
|
13
|
-
</Text>
|
|
14
|
-
</ScrollView>
|
|
15
|
-
</SafeAreaView>
|
|
16
|
-
);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export default DigitalDiary;
|
|
20
|
-
|
|
21
|
-
const styles = StyleSheet.create({
|
|
22
|
-
container: {
|
|
23
|
-
flex: 1,
|
|
24
|
-
backgroundColor: Colors.background,
|
|
25
|
-
},
|
|
26
|
-
content: {
|
|
27
|
-
flexGrow: 1,
|
|
28
|
-
alignItems: 'center',
|
|
29
|
-
justifyContent: 'center',
|
|
30
|
-
padding: 24,
|
|
31
|
-
},
|
|
32
|
-
placeholder: {
|
|
33
|
-
color: Colors.black50,
|
|
34
|
-
},
|
|
35
|
-
});
|