react-native-salespanda 0.6.0 → 0.7.2

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