react-native-salespanda 0.4.0 → 0.4.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.
- package/README.md +89 -5
- package/android/build.gradle +186 -0
- package/lib/module/SalespandaApp.js +46 -12
- package/lib/module/SalespandaApp.js.map +1 -1
- package/lib/module/assets/images/index.js +1 -22
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/config/FlavorConfig.js +43 -0
- package/lib/module/config/FlavorConfig.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigation/AppNavigator.js +8 -4
- package/lib/module/navigation/AppNavigator.js.map +1 -1
- package/lib/module/navigation/BottomTabNavigator.js +69 -41
- package/lib/module/navigation/BottomTabNavigator.js.map +1 -1
- package/lib/module/navigation/DrawerNavigator.js +13 -10
- package/lib/module/navigation/DrawerNavigator.js.map +1 -1
- package/lib/module/screens/CRMScreen.js.map +1 -1
- package/lib/module/screens/NotificationsScreen.js.map +1 -1
- package/lib/module/screens/ProfileScreen.js.map +1 -1
- package/lib/module/screens/ReportsScreen.js.map +1 -1
- package/lib/typescript/src/SalespandaApp.d.ts +12 -2
- package/lib/typescript/src/SalespandaApp.d.ts.map +1 -1
- package/lib/typescript/src/config/FlavorConfig.d.ts +20 -0
- package/lib/typescript/src/config/FlavorConfig.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/AppNavigator.d.ts.map +1 -1
- package/lib/typescript/src/navigation/BottomTabNavigator.d.ts.map +1 -1
- package/lib/typescript/src/navigation/DrawerNavigator.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/SalespandaApp.tsx +57 -12
- package/src/config/FlavorConfig.ts +55 -0
- package/src/index.tsx +6 -0
- package/src/navigation/AppNavigator.tsx +9 -4
- package/src/navigation/BottomTabNavigator.tsx +84 -53
- package/src/navigation/DrawerNavigator.tsx +14 -4
- package/src/screens/CRMScreen.tsx +1 -1
- package/src/screens/NotificationsScreen.tsx +1 -1
- package/src/screens/ProfileScreen.tsx +1 -1
- package/src/screens/ReportsScreen.tsx +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
# react-native-salespanda
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A comprehensive React Native SDK for building multi-tenant enterprise applications with product flavors support. Built for multiple client brands including DIGI PULSE, ABC, Connekt (HDFC), Digiconnect, mEngage (Max Life), NIMF Marketing, smarTMFDPro, and Raksha Connect.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🎨 **Multiple Product Flavors** - Support for 8+ different client brands
|
|
8
|
+
- 🧭 **Flexible Navigation** - Drawer, tabs, or both combined
|
|
9
|
+
- 📱 **Pre-built Screens** - Home, Profile, Notifications, Reports, Premium
|
|
10
|
+
- ⚙️ **Flexible Configuration** - Theme, API, features, and analytics
|
|
11
|
+
- 🔌 **Easy Integration** - Use as standalone app or embed in existing apps
|
|
12
|
+
- 📊 **Analytics Ready** - CleverTap integration support
|
|
13
|
+
- 🔔 **Notification Support** - Push notification configuration per flavor
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
16
|
+
|
|
17
|
+
### For DIGI PULSE (salespandadm) Flavor
|
|
18
|
+
|
|
19
|
+
See [QUICKSTART_SALESPANDADM.md](./QUICKSTART_SALESPANDADM.md) for a complete step-by-step guide.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Install
|
|
23
|
+
npm install react-native-salespanda
|
|
24
|
+
|
|
25
|
+
# Install dependencies
|
|
26
|
+
npm install @react-navigation/native @react-navigation/drawer @react-navigation/bottom-tabs \
|
|
27
|
+
react-native-gesture-handler react-native-reanimated react-native-safe-area-context react-native-screens
|
|
28
|
+
```
|
|
4
29
|
|
|
5
30
|
## Installation
|
|
6
31
|
|
|
@@ -13,12 +38,71 @@ npm install react-native-salespanda
|
|
|
13
38
|
## Usage
|
|
14
39
|
|
|
15
40
|
|
|
16
|
-
```
|
|
17
|
-
import {
|
|
41
|
+
```tsx
|
|
42
|
+
import SalespandaApp, {
|
|
43
|
+
initializeSalespanda,
|
|
44
|
+
getFlavorConfig
|
|
45
|
+
} from 'react-native-salespanda';
|
|
46
|
+
|
|
47
|
+
// Full app mode with both drawer and tabs (default)
|
|
48
|
+
export default function App() {
|
|
49
|
+
const flavorConfig = getFlavorConfig();
|
|
50
|
+
|
|
51
|
+
initializeSalespanda({
|
|
52
|
+
theme: { primaryColor: '#4a148c' },
|
|
53
|
+
api: { baseUrl: `https://${flavorConfig.host}` },
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<SalespandaApp
|
|
58
|
+
navigationType="both" // 'both' | 'drawer' | 'tabs'
|
|
59
|
+
wrapWithGestureHandler={true}
|
|
60
|
+
/>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Navigation Modes
|
|
66
|
+
|
|
67
|
+
- **`both`** (default) - Drawer + Bottom Tabs (recommended)
|
|
68
|
+
- **`drawer`** - Drawer navigation only
|
|
69
|
+
- **`tabs`** - Bottom tabs only
|
|
70
|
+
|
|
71
|
+
See [NAVIGATION_MODES.md](./NAVIGATION_MODES.md) for detailed examples.
|
|
72
|
+
|
|
73
|
+
### Available Flavors
|
|
74
|
+
|
|
75
|
+
- **salespandadm** - DIGI PULSE (`com.spdigi.app`)
|
|
76
|
+
- **abc** - ABC Stellar Partner (`com.stellarsp.app`)
|
|
77
|
+
- **hdfc** - Connekt (`com.hdfcmf.app`)
|
|
78
|
+
- **digiconnect** - MO Digiconnect (`com.digiconnectdm.app`)
|
|
79
|
+
- **maxlife** - mEngage (`com.maxlifedm.app`)
|
|
80
|
+
- **nimf** - NIMF Marketing (`com.nimfdm.app`)
|
|
81
|
+
- **canara** - smarTMFDPro (`com.smartmfdpro.app`)
|
|
82
|
+
- **rakshaconnect** - Raksha Connect (`com.rakshaconnect.app`)
|
|
83
|
+
|
|
84
|
+
See [FLAVORS.md](./FLAVORS.md) for complete flavor details.
|
|
85
|
+
|
|
86
|
+
## Documentation
|
|
87
|
+
|
|
88
|
+
- 📘 [NAVIGATION_MODES.md](./NAVIGATION_MODES.md) - Navigation configuration guide
|
|
89
|
+
- 📘 [QUICKSTART_SALESPANDADM.md](./QUICKSTART_SALESPANDADM.md) - Quick start for DIGI PULSE
|
|
90
|
+
- 📗 [INTEGRATION_GUIDE.md](./INTEGRATION_GUIDE.md) - Complete integration guide
|
|
91
|
+
- 📙 [FLAVORS.md](./FLAVORS.md) - Product flavors documentation
|
|
92
|
+
- 📕 [SDK_USAGE.md](./SDK_USAGE.md) - SDK API reference
|
|
93
|
+
- 📖 [Example App](./example/) - Working example implementation
|
|
94
|
+
|
|
95
|
+
## Building
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Debug build for DIGI PULSE
|
|
99
|
+
npx react-native run-android --mode=salespandadmDebug --appId=com.spdigi.app
|
|
18
100
|
|
|
19
|
-
|
|
101
|
+
# Release build
|
|
102
|
+
cd android && ./gradlew assembleSalespandadmRelease
|
|
20
103
|
|
|
21
|
-
|
|
104
|
+
# Generate Play Store bundle
|
|
105
|
+
cd android && ./gradlew bundleSalespandadmRelease
|
|
22
106
|
```
|
|
23
107
|
|
|
24
108
|
|
package/android/build.gradle
CHANGED
|
@@ -39,6 +39,192 @@ android {
|
|
|
39
39
|
buildConfig true
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
flavorDimensions "flavor-type"
|
|
43
|
+
|
|
44
|
+
productFlavors {
|
|
45
|
+
salespandadm {
|
|
46
|
+
dimension "flavor-type"
|
|
47
|
+
applicationId "com.spdigi.app"
|
|
48
|
+
namespace 'com.spdigi.app'
|
|
49
|
+
resValue "string", "app_name", "DIGI PULSE"
|
|
50
|
+
resValue "string", "_file_provider_authority", "com.spdigi.app.provider"
|
|
51
|
+
resValue "string", "freshchat_file_provider_authority", "com.spdigi.app.provider"
|
|
52
|
+
resValue "string", "clevertap_account_id", "48K-6K5-ZK6Z"
|
|
53
|
+
resValue "string", "clevertap_token", "536-3b4"
|
|
54
|
+
resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
55
|
+
resValue "string", "host", "app.technochimes.com"
|
|
56
|
+
resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
57
|
+
versionCode 57
|
|
58
|
+
versionName "2.3"
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
abc {
|
|
62
|
+
dimension "flavor-type"
|
|
63
|
+
applicationId "com.stellarsp.app"
|
|
64
|
+
namespace 'com.stellarsp.app'
|
|
65
|
+
resValue "string", "app_name", "ABC"
|
|
66
|
+
resValue "string", "_file_provider_authority", "com.stellarsp.app.provider"
|
|
67
|
+
resValue "string", "freshchat_file_provider_authority", "com.stellarsp.app.provider"
|
|
68
|
+
resValue "string", "clevertap_account_id", "48K-6K5-ZK6Z"
|
|
69
|
+
resValue "string", "clevertap_token", "536-3b4"
|
|
70
|
+
resValue "string", "twscheme", "org.abc.android.oauth"
|
|
71
|
+
resValue "string", "host", "app.abcstellarpartner.com"
|
|
72
|
+
resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
73
|
+
versionCode 45
|
|
74
|
+
versionName "2.2.4"
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// salespandadm {
|
|
78
|
+
// dimension "flavor-type"
|
|
79
|
+
// applicationId "com.salespandadm.app"
|
|
80
|
+
// resValue "string", "app_name", "SP PreProd"
|
|
81
|
+
// resValue "string", "_file_provider_authority", "com.salespandadm.app.provider"
|
|
82
|
+
// resValue "string", "freshchat_file_provider_authority", "com.salespandadm.app.provider"
|
|
83
|
+
// resValue "string", "clevertap_account_id", "48K-6K5-ZK6Z"
|
|
84
|
+
// resValue "string", "clevertap_token", "536-3b4"
|
|
85
|
+
// resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
86
|
+
// resValue "string", "host", "app.sppreprod.in"
|
|
87
|
+
// resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
88
|
+
// versionCode 21
|
|
89
|
+
// versionName "1.1.8"
|
|
90
|
+
// }
|
|
91
|
+
|
|
92
|
+
// salespandadm {
|
|
93
|
+
// dimension "flavor-type"
|
|
94
|
+
// applicationId "com.salespandadm.app"
|
|
95
|
+
// resValue "string", "app_name", "SP Pulse"
|
|
96
|
+
// resValue "string", "_file_provider_authority", "com.salespandadm.app.provider"
|
|
97
|
+
// resValue "string", "freshchat_file_provider_authority", "com.salespandadm.app.provider"
|
|
98
|
+
// resValue "string", "clevertap_account_id", "48K-6K5-ZK6Z"
|
|
99
|
+
// resValue "string", "clevertap_token", "536-3b4"
|
|
100
|
+
// resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
101
|
+
// resValue "string", "host", "app.sppreprod.in"
|
|
102
|
+
// resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
103
|
+
// versionCode 21
|
|
104
|
+
// versionName "1.1.8"
|
|
105
|
+
// }
|
|
106
|
+
|
|
107
|
+
// salespandadm {
|
|
108
|
+
// dimension "flavor-type"
|
|
109
|
+
// applicationId "com.test.myapplicationtest"
|
|
110
|
+
// resValue "string", "app_name", "SP TestMFP"
|
|
111
|
+
// resValue "string", "_file_provider_authority", "com.test.myapplicationtest.provider"
|
|
112
|
+
// resValue "string", "freshchat_file_provider_authority", "com.test.myapplicationtest.provider"
|
|
113
|
+
// resValue "string", "clevertap_account_id", "48K-6K5-ZK6Z"
|
|
114
|
+
// resValue "string", "clevertap_token", "536-3b4"
|
|
115
|
+
// resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
116
|
+
// resValue "string", "host", "app.sppreprod.in"
|
|
117
|
+
// versionCode 21
|
|
118
|
+
// versionName "1.1.8"
|
|
119
|
+
// }
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
hdfc {
|
|
123
|
+
dimension "flavor-type"
|
|
124
|
+
applicationId "com.hdfcmf.app"
|
|
125
|
+
namespace 'com.hdfcmf.app'
|
|
126
|
+
resValue "string", "app_name", "Connekt"
|
|
127
|
+
resValue "string", "_file_provider_authority", "com.hdfcmf.app.provider"
|
|
128
|
+
resValue "string", "freshchat_file_provider_authority", "com.hdfcmf.app.provider"
|
|
129
|
+
resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
130
|
+
resValue "string", "clevertap_account_id", "844-4WK-795Z"
|
|
131
|
+
resValue "string", "clevertap_token", "304-44b"
|
|
132
|
+
resValue "string", "host", "app.mutualfundpartner.com"
|
|
133
|
+
resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
134
|
+
versionCode 142
|
|
135
|
+
versionName "1.9.2"
|
|
136
|
+
}
|
|
137
|
+
digiconnect {
|
|
138
|
+
dimension "flavor-type"
|
|
139
|
+
applicationId "com.digiconnectdm.app"
|
|
140
|
+
namespace 'com.digiconnectdm.app'
|
|
141
|
+
resValue "string", "app_name", "MO Digiconnect"
|
|
142
|
+
resValue "string", "_file_provider_authority", "com.digiconnectdm.app.provider"
|
|
143
|
+
resValue "string", "freshchat_file_provider_authority", "com.digiconnectdm.app.provider"
|
|
144
|
+
resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
145
|
+
resValue "string", "clevertap_account_id", "4W5-Z89-676Z"
|
|
146
|
+
resValue "string", "clevertap_token", "cb1-504"
|
|
147
|
+
resValue "string", "host", "app.digipartnerconnect.com"
|
|
148
|
+
resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
149
|
+
versionCode 31
|
|
150
|
+
versionName "1.2.1"
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
maxlife {
|
|
154
|
+
dimension "flavor-type"
|
|
155
|
+
applicationId "com.maxlifedm.app"
|
|
156
|
+
namespace 'com.maxlifedm.app'
|
|
157
|
+
resValue "string", "app_name", "mEngage"
|
|
158
|
+
resValue "string", "_file_provider_authority", "com.maxlifedm.app.provider"
|
|
159
|
+
resValue "string", "freshchat_file_provider_authority", "com.maxlifedm.app.provider"
|
|
160
|
+
resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
161
|
+
resValue "string", "clevertap_account_id", "W4R-R65-995Z"
|
|
162
|
+
resValue "string", "clevertap_token", "562-240"
|
|
163
|
+
resValue "string", "host", "app.axismaxlife.agency"
|
|
164
|
+
resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
165
|
+
versionCode 86
|
|
166
|
+
versionName "1.6.2"
|
|
167
|
+
}
|
|
168
|
+
//app.mutualfundpartner.com.oauth
|
|
169
|
+
nimf {
|
|
170
|
+
dimension "flavor-type"
|
|
171
|
+
applicationId "com.nimfdm.app"
|
|
172
|
+
namespace 'com.nimfdm.app'
|
|
173
|
+
resValue "string", "app_name", "NIMF Marketing"
|
|
174
|
+
resValue "string", "_file_provider_authority", "com.nimfdm.app.provider"
|
|
175
|
+
resValue "string", "freshchat_file_provider_authority", "com.nimfdm.app.provider"
|
|
176
|
+
resValue "string", "clevertap_account_id", "RK8-W4W-4W6Z"
|
|
177
|
+
resValue "string", "clevertap_token", "040-b32"
|
|
178
|
+
resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
179
|
+
resValue "string", "host", "app.nimfpartners.com"
|
|
180
|
+
resValue "string", "default_notification_channel_id", "messages_channel_id_nimf"
|
|
181
|
+
versionCode 92
|
|
182
|
+
versionName "1.8"
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
canara {
|
|
186
|
+
dimension "flavor-type"
|
|
187
|
+
applicationId "com.smartmfdpro.app"
|
|
188
|
+
namespace 'com.smartmfdpro.app'
|
|
189
|
+
resValue "string", "app_name", "smarTMFDPro"
|
|
190
|
+
resValue "string", "_file_provider_authority", "com.smartmfdpro.app.provider"
|
|
191
|
+
resValue "string", "freshchat_file_provider_authority", "com.smartmfdpro.app.provider"
|
|
192
|
+
resValue "string", "clevertap_account_id", "474-545-796Z"
|
|
193
|
+
resValue "string", "clevertap_token", "545-4a4"
|
|
194
|
+
resValue "string", "twscheme", "org.salespanda.android.oauth"
|
|
195
|
+
resValue "string", "host", "app.smartmfdpro.com"
|
|
196
|
+
resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
197
|
+
versionCode 43
|
|
198
|
+
versionName "1.4.2"
|
|
199
|
+
}
|
|
200
|
+
// maxbupa {
|
|
201
|
+
// dimension "flavor-type"
|
|
202
|
+
// applicationId "com.digitaldukaan.app"
|
|
203
|
+
// resValue "string", "app_name", "Digital Dukaan"
|
|
204
|
+
// }
|
|
205
|
+
|
|
206
|
+
// digiconnect {
|
|
207
|
+
// dimension "flavor-type"
|
|
208
|
+
// applicationId "com.digiconnect.app"
|
|
209
|
+
// resValue "string", "app_name", "Digi Connect"
|
|
210
|
+
// }
|
|
211
|
+
rakshaconnect {
|
|
212
|
+
dimension "flavor-type"
|
|
213
|
+
applicationId "com.rakshaconnect.app"
|
|
214
|
+
namespace 'com.rakshaconnect.app'
|
|
215
|
+
resValue "string", "app_name", "Raksha Connect"
|
|
216
|
+
resValue "string", "_file_provider_authority", "com.rakshaconnect.app.provider"
|
|
217
|
+
resValue "string", "freshchat_file_provider_authority", "com.rakshaconnect.app.provider"
|
|
218
|
+
resValue "string", "twscheme", "org.rcdm.android.oauth"
|
|
219
|
+
resValue "string", "clevertap_account_id", ""
|
|
220
|
+
resValue "string", "clevertap_token", ""
|
|
221
|
+
resValue "string", "host", "app.tataaiapartner.com"
|
|
222
|
+
resValue "string", "default_notification_channel_id", "messages_channel_id_sp_apps"
|
|
223
|
+
versionCode 68
|
|
224
|
+
versionName "1.5.6"
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
42
228
|
buildTypes {
|
|
43
229
|
release {
|
|
44
230
|
minifyEnabled false
|
|
@@ -3,34 +3,63 @@
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { NavigationContainer, DefaultTheme } from '@react-navigation/native';
|
|
5
5
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
6
|
+
import { StyleSheet } from 'react-native';
|
|
6
7
|
import DrawerNavigator from "./navigation/DrawerNavigator.js";
|
|
7
8
|
import BottomTabNavigator from "./navigation/BottomTabNavigator.js";
|
|
8
9
|
import { SafeAreaProvider, initialWindowMetrics } from 'react-native-safe-area-context';
|
|
9
10
|
import { Colors } from "./constants/Colors.js";
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
/**
|
|
13
|
+
* Render appropriate navigation based on type
|
|
14
|
+
*/
|
|
15
|
+
function AppContent({
|
|
16
|
+
navigationType
|
|
17
|
+
}) {
|
|
18
|
+
switch (navigationType) {
|
|
19
|
+
case 'drawer':
|
|
20
|
+
// Drawer navigation only (no tabs)
|
|
21
|
+
return /*#__PURE__*/_jsx(DrawerNavigator, {});
|
|
22
|
+
case 'tabs':
|
|
23
|
+
// Bottom tabs only (no drawer)
|
|
24
|
+
return /*#__PURE__*/_jsx(BottomTabNavigator, {});
|
|
25
|
+
case 'both':
|
|
26
|
+
default:
|
|
27
|
+
// Drawer wrapping bottom tabs (recommended)
|
|
28
|
+
// The DrawerNavigator will internally render BottomTabNavigator
|
|
29
|
+
return /*#__PURE__*/_jsx(DrawerNavigator, {});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
11
33
|
/**
|
|
12
34
|
* Main Salespanda App Component
|
|
13
35
|
* Can be used as a standalone app or embedded in another React Native app
|
|
14
36
|
*/
|
|
15
37
|
export default function SalespandaApp({
|
|
16
38
|
navigationRef,
|
|
17
|
-
theme:
|
|
39
|
+
theme: _customTheme,
|
|
18
40
|
standalone = false,
|
|
19
41
|
onReady,
|
|
20
|
-
|
|
21
|
-
|
|
42
|
+
navigationType = 'both',
|
|
43
|
+
useDrawer,
|
|
44
|
+
// deprecated, kept for backward compatibility
|
|
45
|
+
wrapWithGestureHandler = true
|
|
22
46
|
} = {}) {
|
|
23
|
-
// TODO: Apply theme to app (future enhancement)
|
|
47
|
+
// TODO: Apply custom theme to app (future enhancement)
|
|
24
48
|
// Currently theme is managed through SalespandaConfig
|
|
25
|
-
|
|
49
|
+
// _customTheme is reserved for future use
|
|
26
50
|
|
|
27
|
-
//
|
|
28
|
-
|
|
51
|
+
// Handle backward compatibility with useDrawer prop
|
|
52
|
+
let finalNavigationType = navigationType;
|
|
53
|
+
if (useDrawer !== undefined) {
|
|
54
|
+
finalNavigationType = useDrawer ? 'drawer' : 'tabs';
|
|
55
|
+
}
|
|
29
56
|
|
|
30
57
|
// If standalone mode, don't wrap with NavigationContainer
|
|
31
58
|
// (parent app will provide it)
|
|
32
59
|
if (standalone) {
|
|
33
|
-
return /*#__PURE__*/_jsx(AppContent, {
|
|
60
|
+
return /*#__PURE__*/_jsx(AppContent, {
|
|
61
|
+
navigationType: finalNavigationType
|
|
62
|
+
});
|
|
34
63
|
}
|
|
35
64
|
|
|
36
65
|
// Navigation content with SafeAreaProvider
|
|
@@ -51,7 +80,9 @@ export default function SalespandaApp({
|
|
|
51
80
|
ref: navigationRef,
|
|
52
81
|
onReady: onReady,
|
|
53
82
|
theme: navTheme,
|
|
54
|
-
children: /*#__PURE__*/_jsx(AppContent, {
|
|
83
|
+
children: /*#__PURE__*/_jsx(AppContent, {
|
|
84
|
+
navigationType: finalNavigationType
|
|
85
|
+
})
|
|
55
86
|
})
|
|
56
87
|
});
|
|
57
88
|
|
|
@@ -59,12 +90,15 @@ export default function SalespandaApp({
|
|
|
59
90
|
// (default is false since most apps already have gesture handler imported)
|
|
60
91
|
if (wrapWithGestureHandler) {
|
|
61
92
|
return /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
62
|
-
style:
|
|
63
|
-
flex: 1
|
|
64
|
-
},
|
|
93
|
+
style: styles.container,
|
|
65
94
|
children: NavigationContent
|
|
66
95
|
});
|
|
67
96
|
}
|
|
68
97
|
return NavigationContent;
|
|
69
98
|
}
|
|
99
|
+
const styles = StyleSheet.create({
|
|
100
|
+
container: {
|
|
101
|
+
flex: 1
|
|
102
|
+
}
|
|
103
|
+
});
|
|
70
104
|
//# sourceMappingURL=SalespandaApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationContainer","DefaultTheme","GestureHandlerRootView","DrawerNavigator","BottomTabNavigator","SafeAreaProvider","initialWindowMetrics","Colors","jsx","_jsx","SalespandaApp","navigationRef","theme","
|
|
1
|
+
{"version":3,"names":["React","NavigationContainer","DefaultTheme","GestureHandlerRootView","StyleSheet","DrawerNavigator","BottomTabNavigator","SafeAreaProvider","initialWindowMetrics","Colors","jsx","_jsx","AppContent","navigationType","SalespandaApp","navigationRef","theme","_customTheme","standalone","onReady","useDrawer","wrapWithGestureHandler","finalNavigationType","undefined","navTheme","colors","background","primary","card","white","text","black","border","NavigationContent","initialMetrics","children","ref","style","styles","container","create","flex"],"sourceRoot":"../../src","sources":["SalespandaApp.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB,EAAEC,YAAY,QAAQ,0BAA0B;AAC5E,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,eAAe,MAAM,iCAA8B;AAC1D,OAAOC,kBAAkB,MAAM,oCAAiC;AAChE,SACEC,gBAAgB,EAChBC,oBAAoB,QACf,gCAAgC;AACvC,SAASC,MAAM,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAkD5C;AACA;AACA;AACA,SAASC,UAAUA,CAAC;EAClBC;AAGF,CAAC,EAAE;EACD,QAAQA,cAAc;IACpB,KAAK,QAAQ;MACX;MACA,oBAAOF,IAAA,CAACN,eAAe,IAAE,CAAC;IAE5B,KAAK,MAAM;MACT;MACA,oBAAOM,IAAA,CAACL,kBAAkB,IAAE,CAAC;IAE/B,KAAK,MAAM;IACX;MACE;MACA;MACA,oBAAOK,IAAA,CAACN,eAAe,IAAE,CAAC;EAC9B;AACF;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAASS,aAAaA,CAAC;EACpCC,aAAa;EACbC,KAAK,EAAEC,YAAY;EACnBC,UAAU,GAAG,KAAK;EAClBC,OAAO;EACPN,cAAc,GAAG,MAAM;EACvBO,SAAS;EAAE;EACXC,sBAAsB,GAAG;AACP,CAAC,GAAG,CAAC,CAAC,EAAE;EAC1B;EACA;EACA;;EAEA;EACA,IAAIC,mBAAmB,GAAGT,cAAc;EACxC,IAAIO,SAAS,KAAKG,SAAS,EAAE;IAC3BD,mBAAmB,GAAGF,SAAS,GAAG,QAAQ,GAAG,MAAM;EACrD;;EAEA;EACA;EACA,IAAIF,UAAU,EAAE;IACd,oBAAOP,IAAA,CAACC,UAAU;MAACC,cAAc,EAAES;IAAoB,CAAE,CAAC;EAC5D;;EAEA;EACA,MAAME,QAAQ,GAAG;IACf,GAAGtB,YAAY;IACfuB,MAAM,EAAE;MACN,GAAGvB,YAAY,CAACuB,MAAM;MACtBC,UAAU,EAAEjB,MAAM,CAACiB,UAAU;MAC7BC,OAAO,EAAElB,MAAM,CAACkB,OAAO;MACvBC,IAAI,EAAEnB,MAAM,CAACoB,KAAK;MAClBC,IAAI,EAAErB,MAAM,CAACsB,KAAK;MAClBC,MAAM,EAAEvB,MAAM,CAACuB;IACjB;EACF,CAAC;EAED,MAAMC,iBAAiB,gBACrBtB,IAAA,CAACJ,gBAAgB;IAAC2B,cAAc,EAAE1B,oBAAqB;IAAA2B,QAAA,eACrDxB,IAAA,CAACV,mBAAmB;MAClBmC,GAAG,EAAErB,aAAc;MACnBI,OAAO,EAAEA,OAAQ;MACjBH,KAAK,EAAEQ,QAAS;MAAAW,QAAA,eAEhBxB,IAAA,CAACC,UAAU;QAACC,cAAc,EAAES;MAAoB,CAAE;IAAC,CAChC;EAAC,CACN,CACnB;;EAED;EACA;EACA,IAAID,sBAAsB,EAAE;IAC1B,oBACEV,IAAA,CAACR,sBAAsB;MAACkC,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAJ,QAAA,EAC7CF;IAAiB,CACI,CAAC;EAE7B;EAEA,OAAOA,iBAAiB;AAC1B;AAEA,MAAMK,MAAM,GAAGlC,UAAU,CAACoC,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
// Bottom Tab Icons
|
|
3
4
|
export const homeIcon = require('./bottomtabs/home.png');
|
|
4
5
|
export const homeIconActive = require('./bottomtabs/homeactive.png');
|
|
5
6
|
export const analyticsIcon = require('./bottomtabs/analytics.png');
|
|
@@ -10,26 +11,4 @@ export const diaryIcon = require('./bottomtabs/diary.png');
|
|
|
10
11
|
export const diaryIconActive = require('./bottomtabs/diaryactive.png');
|
|
11
12
|
export const notificationIcon = require('./bottomtabs/notification.png');
|
|
12
13
|
export const notificationIconActive = require('./bottomtabs/notificationactive.png');
|
|
13
|
-
export const bottomTabIcons = {
|
|
14
|
-
home: {
|
|
15
|
-
default: homeIcon,
|
|
16
|
-
active: homeIconActive
|
|
17
|
-
},
|
|
18
|
-
analytics: {
|
|
19
|
-
default: analyticsIcon,
|
|
20
|
-
active: analyticsIconActive
|
|
21
|
-
},
|
|
22
|
-
crm: {
|
|
23
|
-
default: crmIcon,
|
|
24
|
-
active: crmIconActive
|
|
25
|
-
},
|
|
26
|
-
diary: {
|
|
27
|
-
default: diaryIcon,
|
|
28
|
-
active: diaryIconActive
|
|
29
|
-
},
|
|
30
|
-
notification: {
|
|
31
|
-
default: notificationIcon,
|
|
32
|
-
active: notificationIconActive
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["homeIcon","require","homeIconActive","analyticsIcon","analyticsIconActive","crmIcon","crmIconActive","diaryIcon","diaryIconActive","notificationIcon","notificationIconActive"
|
|
1
|
+
{"version":3,"names":["homeIcon","require","homeIconActive","analyticsIcon","analyticsIconActive","crmIcon","crmIconActive","diaryIcon","diaryIconActive","notificationIcon","notificationIconActive"],"sourceRoot":"../../../../src","sources":["assets/images/index.js"],"mappings":";;AAAA;AACA,OAAO,MAAMA,QAAQ,GAAGC,OAAO,CAAC,uBAAuB,CAAC;AACxD,OAAO,MAAMC,cAAc,GAAGD,OAAO,CAAC,6BAA6B,CAAC;AACpE,OAAO,MAAME,aAAa,GAAGF,OAAO,CAAC,4BAA4B,CAAC;AAClE,OAAO,MAAMG,mBAAmB,GAAGH,OAAO,CAAC,kCAAkC,CAAC;AAC9E,OAAO,MAAMI,OAAO,GAAGJ,OAAO,CAAC,sBAAsB,CAAC;AACtD,OAAO,MAAMK,aAAa,GAAGL,OAAO,CAAC,4BAA4B,CAAC;AAClE,OAAO,MAAMM,SAAS,GAAGN,OAAO,CAAC,wBAAwB,CAAC;AAC1D,OAAO,MAAMO,eAAe,GAAGP,OAAO,CAAC,8BAA8B,CAAC;AACtE,OAAO,MAAMQ,gBAAgB,GAAGR,OAAO,CAAC,+BAA+B,CAAC;AACxE,OAAO,MAAMS,sBAAsB,GAAGT,OAAO,CAAC,qCAAqC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NativeModules, Platform } from 'react-native';
|
|
4
|
+
/**
|
|
5
|
+
* Get the current flavor configuration
|
|
6
|
+
* This reads from native build config on Android
|
|
7
|
+
* On iOS, you'll need to configure schemes and xcconfig files
|
|
8
|
+
*/
|
|
9
|
+
export const getFlavorConfig = () => {
|
|
10
|
+
if (Platform.OS === 'android') {
|
|
11
|
+
const {
|
|
12
|
+
BuildConfig
|
|
13
|
+
} = NativeModules;
|
|
14
|
+
if (BuildConfig) {
|
|
15
|
+
return {
|
|
16
|
+
appName: BuildConfig.APP_NAME || 'Salespanda',
|
|
17
|
+
applicationId: BuildConfig.APPLICATION_ID || 'com.salespanda.app',
|
|
18
|
+
host: BuildConfig.HOST || '',
|
|
19
|
+
clevertapAccountId: BuildConfig.CLEVERTAP_ACCOUNT_ID || '',
|
|
20
|
+
clevertapToken: BuildConfig.CLEVERTAP_TOKEN || '',
|
|
21
|
+
twScheme: BuildConfig.TWSCHEME || '',
|
|
22
|
+
fileProviderAuthority: BuildConfig.FILE_PROVIDER_AUTHORITY || '',
|
|
23
|
+
freshchatFileProviderAuthority: BuildConfig.FRESHCHAT_FILE_PROVIDER_AUTHORITY || '',
|
|
24
|
+
defaultNotificationChannelId: BuildConfig.DEFAULT_NOTIFICATION_CHANNEL_ID || ''
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Default configuration for iOS or if BuildConfig is not available
|
|
30
|
+
return {
|
|
31
|
+
appName: 'Salespanda',
|
|
32
|
+
applicationId: 'com.salespanda.app',
|
|
33
|
+
host: '',
|
|
34
|
+
clevertapAccountId: '',
|
|
35
|
+
clevertapToken: '',
|
|
36
|
+
twScheme: '',
|
|
37
|
+
fileProviderAuthority: '',
|
|
38
|
+
freshchatFileProviderAuthority: '',
|
|
39
|
+
defaultNotificationChannelId: ''
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export default getFlavorConfig();
|
|
43
|
+
//# sourceMappingURL=FlavorConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","getFlavorConfig","OS","BuildConfig","appName","APP_NAME","applicationId","APPLICATION_ID","host","HOST","clevertapAccountId","CLEVERTAP_ACCOUNT_ID","clevertapToken","CLEVERTAP_TOKEN","twScheme","TWSCHEME","fileProviderAuthority","FILE_PROVIDER_AUTHORITY","freshchatFileProviderAuthority","FRESHCHAT_FILE_PROVIDER_AUTHORITY","defaultNotificationChannelId","DEFAULT_NOTIFICATION_CHANNEL_ID"],"sourceRoot":"../../../src","sources":["config/FlavorConfig.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AActD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAoB;EACjD,IAAID,QAAQ,CAACE,EAAE,KAAK,SAAS,EAAE;IAC7B,MAAM;MAAEC;IAAY,CAAC,GAAGJ,aAAa;IAErC,IAAII,WAAW,EAAE;MACf,OAAO;QACLC,OAAO,EAAED,WAAW,CAACE,QAAQ,IAAI,YAAY;QAC7CC,aAAa,EAAEH,WAAW,CAACI,cAAc,IAAI,oBAAoB;QACjEC,IAAI,EAAEL,WAAW,CAACM,IAAI,IAAI,EAAE;QAC5BC,kBAAkB,EAAEP,WAAW,CAACQ,oBAAoB,IAAI,EAAE;QAC1DC,cAAc,EAAET,WAAW,CAACU,eAAe,IAAI,EAAE;QACjDC,QAAQ,EAAEX,WAAW,CAACY,QAAQ,IAAI,EAAE;QACpCC,qBAAqB,EAAEb,WAAW,CAACc,uBAAuB,IAAI,EAAE;QAChEC,8BAA8B,EAC5Bf,WAAW,CAACgB,iCAAiC,IAAI,EAAE;QACrDC,4BAA4B,EAC1BjB,WAAW,CAACkB,+BAA+B,IAAI;MACnD,CAAC;IACH;EACF;;EAEA;EACA,OAAO;IACLjB,OAAO,EAAE,YAAY;IACrBE,aAAa,EAAE,oBAAoB;IACnCE,IAAI,EAAE,EAAE;IACRE,kBAAkB,EAAE,EAAE;IACtBE,cAAc,EAAE,EAAE;IAClBE,QAAQ,EAAE,EAAE;IACZE,qBAAqB,EAAE,EAAE;IACzBE,8BAA8B,EAAE,EAAE;IAClCE,4BAA4B,EAAE;EAChC,CAAC;AACH,CAAC;AAED,eAAenB,eAAe,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -22,6 +22,12 @@ export { default as SalespandaApp } from "./SalespandaApp.js";
|
|
|
22
22
|
// CONFIGURATION
|
|
23
23
|
// ============================================
|
|
24
24
|
export { initializeSalespanda, getSalespandaConfig, resetSalespandaConfig } from "./config/SalespandaConfig.js";
|
|
25
|
+
// ============================================
|
|
26
|
+
// FLAVOR CONFIGURATION
|
|
27
|
+
// ============================================
|
|
28
|
+
export { getFlavorConfig } from "./config/FlavorConfig.js";
|
|
29
|
+
export { default as FlavorConfig } from "./config/FlavorConfig.js";
|
|
30
|
+
|
|
25
31
|
// ============================================
|
|
26
32
|
// NAVIGATION COMPONENTS
|
|
27
33
|
// ============================================
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","SalespandaApp","initializeSalespanda","getSalespandaConfig","resetSalespandaConfig","AppNavigator","DrawerNavigator","BottomTabNavigator","HomeScreen","ProfileScreen","NotificationsScreen","ReportsScreen","PremiumScreen"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAiB;AACzC,SAASA,OAAO,IAAIC,aAAa,QAAQ,oBAAiB;AAG1D;AACA;AACA;AACA,SACEC,oBAAoB,EACpBC,mBAAmB,EACnBC,qBAAqB,QAChB,8BAA2B;AAGlC;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"names":["default","SalespandaApp","initializeSalespanda","getSalespandaConfig","resetSalespandaConfig","getFlavorConfig","FlavorConfig","AppNavigator","DrawerNavigator","BottomTabNavigator","HomeScreen","ProfileScreen","NotificationsScreen","ReportsScreen","PremiumScreen"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAiB;AACzC,SAASA,OAAO,IAAIC,aAAa,QAAQ,oBAAiB;AAG1D;AACA;AACA;AACA,SACEC,oBAAoB,EACpBC,mBAAmB,EACnBC,qBAAqB,QAChB,8BAA2B;AAGlC;AACA;AACA;AACA,SAASC,eAAe,QAAQ,0BAAuB;AACvD,SAASL,OAAO,IAAIM,YAAY,QAAQ,0BAAuB;;AAE/D;AACA;AACA;AACA,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;AACnE,SAASP,OAAO,IAAIQ,eAAe,QAAQ,iCAA8B;AACzE,SAASR,OAAO,IAAIS,kBAAkB,QAAQ,oCAAiC;;AAE/E;AACA;AACA;AACA,SAAST,OAAO,IAAIU,UAAU,QAAQ,yBAAsB;AAC5D,SAASV,OAAO,IAAIW,aAAa,QAAQ,4BAAyB;AAClE,SAASX,OAAO,IAAIY,mBAAmB,QAAQ,kCAA+B;AAC9E,SAASZ,OAAO,IAAIa,aAAa,QAAQ,4BAAyB;AAClE,SAASb,OAAO,IAAIc,aAAa,QAAQ,wBAAqB","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { NavigationContainer } from '@react-navigation/native';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
4
5
|
import BottomTabNavigator from "./BottomTabNavigator.js";
|
|
5
6
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
6
7
|
import { Colors } from "../constants/Colors.js";
|
|
@@ -8,13 +9,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
8
9
|
export default function AppNavigator() {
|
|
9
10
|
return /*#__PURE__*/_jsx(NavigationContainer, {
|
|
10
11
|
children: /*#__PURE__*/_jsx(SafeAreaView, {
|
|
11
|
-
style:
|
|
12
|
-
flex: 1,
|
|
13
|
-
backgroundColor: Colors.background
|
|
14
|
-
},
|
|
12
|
+
style: styles.container,
|
|
15
13
|
edges: ['bottom', 'top'],
|
|
16
14
|
children: /*#__PURE__*/_jsx(BottomTabNavigator, {})
|
|
17
15
|
})
|
|
18
16
|
});
|
|
19
17
|
}
|
|
18
|
+
const styles = StyleSheet.create({
|
|
19
|
+
container: {
|
|
20
|
+
flex: 1,
|
|
21
|
+
backgroundColor: Colors.background
|
|
22
|
+
}
|
|
23
|
+
});
|
|
20
24
|
//# sourceMappingURL=AppNavigator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NavigationContainer","BottomTabNavigator","SafeAreaView","Colors","jsx","_jsx","AppNavigator","children","style","flex","backgroundColor","background"
|
|
1
|
+
{"version":3,"names":["NavigationContainer","StyleSheet","BottomTabNavigator","SafeAreaView","Colors","jsx","_jsx","AppNavigator","children","style","styles","container","edges","create","flex","backgroundColor","background"],"sourceRoot":"../../../src","sources":["navigation/AppNavigator.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,kBAAkB,MAAM,yBAAsB;AACrD,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,MAAM,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE7C,eAAe,SAASC,YAAYA,CAAA,EAAG;EACrC,oBACED,IAAA,CAACN,mBAAmB;IAAAQ,QAAA,eAClBF,IAAA,CAACH,YAAY;MAACM,KAAK,EAAEC,MAAM,CAACC,SAAU;MAACC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAE;MAAAJ,QAAA,eAC9DF,IAAA,CAACJ,kBAAkB,IAAE;IAAC,CACV;EAAC,CACI,CAAC;AAE1B;AAEA,MAAMQ,MAAM,GAAGT,UAAU,CAACY,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEX,MAAM,CAACY;EAC1B;AACF,CAAC,CAAC","ignoreList":[]}
|