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.
Files changed (130) hide show
  1. package/README.md +50 -102
  2. package/package.json +2 -3
  3. package/lib/module/NativeSalespanda.js.map +0 -1
  4. package/lib/module/SalespandaApp.js.map +0 -1
  5. package/lib/module/assets/images/index.js.map +0 -1
  6. package/lib/module/components/BottomSheet.js.map +0 -1
  7. package/lib/module/components/ContactViaModal.js.map +0 -1
  8. package/lib/module/components/Loader.js.map +0 -1
  9. package/lib/module/components/ScreenHeader.js.map +0 -1
  10. package/lib/module/components/SearchBar.js.map +0 -1
  11. package/lib/module/components/TabsHeader.js.map +0 -1
  12. package/lib/module/components/index.js.map +0 -1
  13. package/lib/module/config/FlavorConfig.js.map +0 -1
  14. package/lib/module/config/SalespandaConfig.js.map +0 -1
  15. package/lib/module/constants/Colors.js.map +0 -1
  16. package/lib/module/constants/GetPlatorm.js.map +0 -1
  17. package/lib/module/index.js.map +0 -1
  18. package/lib/module/navigation/AppNavigator.js.map +0 -1
  19. package/lib/module/navigation/BottomTabNavigator.js.map +0 -1
  20. package/lib/module/navigation/DrawerNavigator.js.map +0 -1
  21. package/lib/module/navigation/StackNavigator.js.map +0 -1
  22. package/lib/module/screens/CRM/AddContactModal.js.map +0 -1
  23. package/lib/module/screens/CRM/CategoryTabs.js.map +0 -1
  24. package/lib/module/screens/CRM/ContactItem.js.map +0 -1
  25. package/lib/module/screens/CRM/FilterDropdown.js.map +0 -1
  26. package/lib/module/screens/CRM/FunnelChart.js.map +0 -1
  27. package/lib/module/screens/CRM/InfoCard.js.map +0 -1
  28. package/lib/module/screens/CRM/LeadCard.js.map +0 -1
  29. package/lib/module/screens/CRM/LogCallScreen.js.map +0 -1
  30. package/lib/module/screens/CRM/TopTabs.js.map +0 -1
  31. package/lib/module/screens/CRM/index.js.map +0 -1
  32. package/lib/module/screens/ReportsScreen.js.map +0 -1
  33. package/lib/module/screens/Tabs/ActivityAnalytics.js.map +0 -1
  34. package/lib/module/screens/Tabs/CRMScreen.js.map +0 -1
  35. package/lib/module/screens/Tabs/DigitalDiary.js.map +0 -1
  36. package/lib/module/screens/Tabs/HomeScreen.js.map +0 -1
  37. package/lib/module/screens/Tabs/NotificationsScreen.js.map +0 -1
  38. package/lib/module/screens/contentliberary/contentliberary.js.map +0 -1
  39. package/lib/module/services/api.js.map +0 -1
  40. package/lib/module/services/authService.js.map +0 -1
  41. package/lib/module/store/index.js.map +0 -1
  42. package/lib/typescript/src/NativeSalespanda.d.ts.map +0 -1
  43. package/lib/typescript/src/SalespandaApp.d.ts.map +0 -1
  44. package/lib/typescript/src/assets/images/index.d.ts.map +0 -1
  45. package/lib/typescript/src/components/BottomSheet.d.ts.map +0 -1
  46. package/lib/typescript/src/components/ContactViaModal.d.ts.map +0 -1
  47. package/lib/typescript/src/components/Loader.d.ts.map +0 -1
  48. package/lib/typescript/src/components/ScreenHeader.d.ts.map +0 -1
  49. package/lib/typescript/src/components/SearchBar.d.ts.map +0 -1
  50. package/lib/typescript/src/components/TabsHeader.d.ts.map +0 -1
  51. package/lib/typescript/src/components/index.d.ts.map +0 -1
  52. package/lib/typescript/src/config/FlavorConfig.d.ts.map +0 -1
  53. package/lib/typescript/src/config/SalespandaConfig.d.ts.map +0 -1
  54. package/lib/typescript/src/constants/Colors.d.ts.map +0 -1
  55. package/lib/typescript/src/constants/GetPlatorm.d.ts.map +0 -1
  56. package/lib/typescript/src/index.d.ts.map +0 -1
  57. package/lib/typescript/src/navigation/AppNavigator.d.ts.map +0 -1
  58. package/lib/typescript/src/navigation/BottomTabNavigator.d.ts.map +0 -1
  59. package/lib/typescript/src/navigation/DrawerNavigator.d.ts.map +0 -1
  60. package/lib/typescript/src/navigation/StackNavigator.d.ts.map +0 -1
  61. package/lib/typescript/src/screens/CRM/AddContactModal.d.ts.map +0 -1
  62. package/lib/typescript/src/screens/CRM/CategoryTabs.d.ts.map +0 -1
  63. package/lib/typescript/src/screens/CRM/ContactItem.d.ts.map +0 -1
  64. package/lib/typescript/src/screens/CRM/FilterDropdown.d.ts.map +0 -1
  65. package/lib/typescript/src/screens/CRM/FunnelChart.d.ts.map +0 -1
  66. package/lib/typescript/src/screens/CRM/InfoCard.d.ts.map +0 -1
  67. package/lib/typescript/src/screens/CRM/LeadCard.d.ts.map +0 -1
  68. package/lib/typescript/src/screens/CRM/LogCallScreen.d.ts.map +0 -1
  69. package/lib/typescript/src/screens/CRM/TopTabs.d.ts.map +0 -1
  70. package/lib/typescript/src/screens/CRM/index.d.ts.map +0 -1
  71. package/lib/typescript/src/screens/ReportsScreen.d.ts.map +0 -1
  72. package/lib/typescript/src/screens/Tabs/ActivityAnalytics.d.ts.map +0 -1
  73. package/lib/typescript/src/screens/Tabs/CRMScreen.d.ts.map +0 -1
  74. package/lib/typescript/src/screens/Tabs/DigitalDiary.d.ts.map +0 -1
  75. package/lib/typescript/src/screens/Tabs/HomeScreen.d.ts.map +0 -1
  76. package/lib/typescript/src/screens/Tabs/NotificationsScreen.d.ts.map +0 -1
  77. package/lib/typescript/src/screens/contentliberary/contentliberary.d.ts.map +0 -1
  78. package/lib/typescript/src/services/api.d.ts.map +0 -1
  79. package/lib/typescript/src/services/authService.d.ts.map +0 -1
  80. package/lib/typescript/src/store/index.d.ts.map +0 -1
  81. package/src/NativeSalespanda.ts +0 -7
  82. package/src/SalespandaApp.tsx +0 -141
  83. package/src/assets/images/bottomtabs/analytics.png +0 -0
  84. package/src/assets/images/bottomtabs/analyticsactive.png +0 -0
  85. package/src/assets/images/bottomtabs/crm.png +0 -0
  86. package/src/assets/images/bottomtabs/crmactive.png +0 -0
  87. package/src/assets/images/bottomtabs/diary.png +0 -0
  88. package/src/assets/images/bottomtabs/diaryactive.png +0 -0
  89. package/src/assets/images/bottomtabs/home.png +0 -0
  90. package/src/assets/images/bottomtabs/homeactive.png +0 -0
  91. package/src/assets/images/bottomtabs/notification.png +0 -0
  92. package/src/assets/images/bottomtabs/notificationactive.png +0 -0
  93. package/src/assets/images/index.js +0 -11
  94. package/src/assets/images/index.ts +0 -40
  95. package/src/components/BottomSheet.tsx +0 -146
  96. package/src/components/ContactViaModal.tsx +0 -80
  97. package/src/components/Loader.tsx +0 -48
  98. package/src/components/ScreenHeader.tsx +0 -57
  99. package/src/components/SearchBar.tsx +0 -59
  100. package/src/components/TabsHeader.tsx +0 -72
  101. package/src/components/index.ts +0 -5
  102. package/src/config/FlavorConfig.ts +0 -55
  103. package/src/config/SalespandaConfig.ts +0 -142
  104. package/src/constants/Colors.ts +0 -17
  105. package/src/constants/GetPlatorm.ts +0 -29
  106. package/src/index.tsx +0 -31
  107. package/src/navigation/AppNavigator.tsx +0 -24
  108. package/src/navigation/BottomTabNavigator.tsx +0 -181
  109. package/src/navigation/DrawerNavigator.tsx +0 -306
  110. package/src/navigation/StackNavigator.tsx +0 -32
  111. package/src/screens/CRM/AddContactModal.tsx +0 -57
  112. package/src/screens/CRM/CategoryTabs.tsx +0 -109
  113. package/src/screens/CRM/ContactItem.tsx +0 -168
  114. package/src/screens/CRM/FilterDropdown.tsx +0 -34
  115. package/src/screens/CRM/FunnelChart.tsx +0 -103
  116. package/src/screens/CRM/InfoCard.tsx +0 -51
  117. package/src/screens/CRM/LeadCard.tsx +0 -69
  118. package/src/screens/CRM/LogCallScreen.tsx +0 -318
  119. package/src/screens/CRM/TopTabs.tsx +0 -95
  120. package/src/screens/CRM/index.ts +0 -10
  121. package/src/screens/ReportsScreen.tsx +0 -37
  122. package/src/screens/Tabs/ActivityAnalytics.tsx +0 -25
  123. package/src/screens/Tabs/CRMScreen.tsx +0 -381
  124. package/src/screens/Tabs/DigitalDiary.tsx +0 -35
  125. package/src/screens/Tabs/HomeScreen.tsx +0 -379
  126. package/src/screens/Tabs/NotificationsScreen.tsx +0 -25
  127. package/src/screens/contentliberary/contentliberary.tsx +0 -268
  128. package/src/services/api.ts +0 -173
  129. package/src/services/authService.ts +0 -75
  130. 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
- });