react-native-salespanda 0.3.0 → 0.4.0
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/Salespanda.podspec +4 -0
- package/android/build.gradle +2 -0
- package/lib/module/SalespandaApp.js +22 -8
- package/lib/module/SalespandaApp.js.map +1 -1
- package/lib/module/assets/images/bottomtabs/analytics.png +0 -0
- package/lib/module/assets/images/bottomtabs/analyticsactive.png +0 -0
- package/lib/module/assets/images/bottomtabs/crm.png +0 -0
- package/lib/module/assets/images/bottomtabs/crmactive.png +0 -0
- package/lib/module/assets/images/bottomtabs/diary.png +0 -0
- package/lib/module/assets/images/bottomtabs/diaryactive.png +0 -0
- package/lib/module/assets/images/bottomtabs/home.png +0 -0
- package/lib/module/assets/images/bottomtabs/homeactive.png +0 -0
- package/lib/module/assets/images/bottomtabs/notification.png +0 -0
- package/lib/module/assets/images/bottomtabs/notificationactive.png +0 -0
- package/lib/module/assets/images/index.js +35 -0
- package/lib/module/assets/images/index.js.map +1 -0
- package/lib/module/constants/Colors.js +17 -0
- package/lib/module/constants/Colors.js.map +1 -0
- package/lib/module/constants/GetPlatorm.js +23 -0
- package/lib/module/constants/GetPlatorm.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigation/AppNavigator.js +3 -1
- package/lib/module/navigation/AppNavigator.js.map +1 -1
- package/lib/module/navigation/BottomTabNavigator.js +71 -53
- package/lib/module/navigation/BottomTabNavigator.js.map +1 -1
- package/lib/module/navigation/DrawerNavigator.js +210 -129
- package/lib/module/navigation/DrawerNavigator.js.map +1 -1
- package/lib/module/screens/CRMScreen.js +41 -0
- package/lib/module/screens/CRMScreen.js.map +1 -0
- package/lib/module/screens/HomeScreen.js +82 -88
- package/lib/module/screens/HomeScreen.js.map +1 -1
- package/lib/module/screens/NotificationsScreen.js +11 -97
- package/lib/module/screens/NotificationsScreen.js.map +1 -1
- package/lib/module/screens/ProfileScreen.js +13 -119
- package/lib/module/screens/ProfileScreen.js.map +1 -1
- package/lib/module/screens/ReportsScreen.js +11 -187
- package/lib/module/screens/ReportsScreen.js.map +1 -1
- package/lib/typescript/src/SalespandaApp.d.ts +1 -1
- package/lib/typescript/src/SalespandaApp.d.ts.map +1 -1
- package/lib/typescript/src/assets/images/index.d.ts +17 -0
- package/lib/typescript/src/assets/images/index.d.ts.map +1 -0
- package/lib/typescript/src/constants/Colors.d.ts +15 -0
- package/lib/typescript/src/constants/Colors.d.ts.map +1 -0
- package/lib/typescript/src/constants/GetPlatorm.d.ts +11 -0
- package/lib/typescript/src/constants/GetPlatorm.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +1 -1
- 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/lib/typescript/src/screens/CRMScreen.d.ts +2 -0
- package/lib/typescript/src/screens/CRMScreen.d.ts.map +1 -0
- package/lib/typescript/src/screens/HomeScreen.d.ts.map +1 -1
- package/lib/typescript/src/screens/NotificationsScreen.d.ts.map +1 -1
- package/lib/typescript/src/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/src/screens/ReportsScreen.d.ts +1 -1
- package/lib/typescript/src/screens/ReportsScreen.d.ts.map +1 -1
- package/package.json +3 -1
- package/react-native.config.js +9 -0
- package/src/SalespandaApp.tsx +28 -8
- 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 +11 -0
- package/src/assets/images/index.ts +40 -0
- package/src/constants/Colors.ts +16 -0
- package/src/constants/GetPlatorm.ts +29 -0
- package/src/index.tsx +1 -1
- package/src/navigation/AppNavigator.tsx +5 -1
- package/src/navigation/BottomTabNavigator.tsx +79 -24
- package/src/navigation/DrawerNavigator.tsx +176 -127
- package/src/screens/CRMScreen.tsx +34 -0
- package/src/screens/HomeScreen.tsx +94 -81
- package/src/screens/NotificationsScreen.tsx +9 -110
- package/src/screens/ProfileScreen.tsx +10 -97
- package/src/screens/ReportsScreen.tsx +9 -166
- package/lib/module/screens/PremiumScreen.js +0 -222
- package/lib/module/screens/PremiumScreen.js.map +0 -1
- package/lib/typescript/src/screens/PremiumScreen.d.ts +0 -2
- package/lib/typescript/src/screens/PremiumScreen.d.ts.map +0 -1
- package/src/screens/PremiumScreen.tsx +0 -250
|
@@ -1,217 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
3
|
+
import { View, Text, StyleSheet, ScrollView } from 'react-native';
|
|
4
|
+
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
5
|
+
import { Colors } from "../constants/Colors.js";
|
|
5
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
title,
|
|
8
|
-
value,
|
|
9
|
-
icon,
|
|
10
|
-
color
|
|
11
|
-
}) => {
|
|
12
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
13
|
-
style: [styles.statCard, {
|
|
14
|
-
backgroundColor: color
|
|
15
|
-
}],
|
|
16
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
17
|
-
style: styles.statIcon,
|
|
18
|
-
children: icon
|
|
19
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
20
|
-
style: styles.statValue,
|
|
21
|
-
children: value
|
|
22
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
23
|
-
style: styles.statTitle,
|
|
24
|
-
children: title
|
|
25
|
-
})]
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
export default function ReportsScreen() {
|
|
7
|
+
export default function NotificationsScreen() {
|
|
29
8
|
return /*#__PURE__*/_jsxs(SafeAreaView, {
|
|
30
9
|
style: styles.container,
|
|
10
|
+
edges: ['bottom'],
|
|
31
11
|
children: [/*#__PURE__*/_jsx(View, {
|
|
32
12
|
style: styles.header,
|
|
33
13
|
children: /*#__PURE__*/_jsx(Text, {
|
|
34
14
|
style: styles.headerTitle,
|
|
35
15
|
children: "Reports"
|
|
36
16
|
})
|
|
37
|
-
}), /*#__PURE__*/
|
|
38
|
-
style: styles.scrollView
|
|
39
|
-
children: [/*#__PURE__*/_jsxs(View, {
|
|
40
|
-
style: styles.statsGrid,
|
|
41
|
-
children: [/*#__PURE__*/_jsx(StatCard, {
|
|
42
|
-
title: "Total Campaigns",
|
|
43
|
-
value: "24",
|
|
44
|
-
icon: "\uD83D\uDCE7",
|
|
45
|
-
color: "#e3f2fd"
|
|
46
|
-
}), /*#__PURE__*/_jsx(StatCard, {
|
|
47
|
-
title: "Active Contacts",
|
|
48
|
-
value: "1,234",
|
|
49
|
-
icon: "\uD83D\uDC65",
|
|
50
|
-
color: "#f3e5f5"
|
|
51
|
-
}), /*#__PURE__*/_jsx(StatCard, {
|
|
52
|
-
title: "Total Views",
|
|
53
|
-
value: "5,678",
|
|
54
|
-
icon: "\uD83D\uDC41\uFE0F",
|
|
55
|
-
color: "#e8f5e9"
|
|
56
|
-
}), /*#__PURE__*/_jsx(StatCard, {
|
|
57
|
-
title: "Conversions",
|
|
58
|
-
value: "89",
|
|
59
|
-
icon: "\u2705",
|
|
60
|
-
color: "#fff3e0"
|
|
61
|
-
})]
|
|
62
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
63
|
-
style: styles.section,
|
|
64
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
65
|
-
style: styles.sectionTitle,
|
|
66
|
-
children: "Recent Activity"
|
|
67
|
-
}), /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
68
|
-
style: styles.activityItem,
|
|
69
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
70
|
-
style: styles.activityIcon,
|
|
71
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
72
|
-
style: styles.activityIconText,
|
|
73
|
-
children: "\uD83D\uDCCA"
|
|
74
|
-
})
|
|
75
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
76
|
-
style: styles.activityContent,
|
|
77
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
78
|
-
style: styles.activityTitle,
|
|
79
|
-
children: "Campaign Analytics"
|
|
80
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
81
|
-
style: styles.activityDescription,
|
|
82
|
-
children: "View detailed analytics for your campaigns"
|
|
83
|
-
})]
|
|
84
|
-
})]
|
|
85
|
-
}), /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
86
|
-
style: styles.activityItem,
|
|
87
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
88
|
-
style: styles.activityIcon,
|
|
89
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
90
|
-
style: styles.activityIconText,
|
|
91
|
-
children: "\uD83D\uDCC8"
|
|
92
|
-
})
|
|
93
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
94
|
-
style: styles.activityContent,
|
|
95
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
96
|
-
style: styles.activityTitle,
|
|
97
|
-
children: "Performance Report"
|
|
98
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
99
|
-
style: styles.activityDescription,
|
|
100
|
-
children: "Monthly performance summary"
|
|
101
|
-
})]
|
|
102
|
-
})]
|
|
103
|
-
}), /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
104
|
-
style: styles.activityItem,
|
|
105
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
106
|
-
style: styles.activityIcon,
|
|
107
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
108
|
-
style: styles.activityIconText,
|
|
109
|
-
children: "\uD83D\uDCB0"
|
|
110
|
-
})
|
|
111
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
112
|
-
style: styles.activityContent,
|
|
113
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
114
|
-
style: styles.activityTitle,
|
|
115
|
-
children: "Revenue Report"
|
|
116
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
117
|
-
style: styles.activityDescription,
|
|
118
|
-
children: "Track your earnings and revenue"
|
|
119
|
-
})]
|
|
120
|
-
})]
|
|
121
|
-
})]
|
|
122
|
-
})]
|
|
17
|
+
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
18
|
+
style: styles.scrollView
|
|
123
19
|
})]
|
|
124
20
|
});
|
|
125
21
|
}
|
|
126
22
|
const styles = StyleSheet.create({
|
|
127
23
|
container: {
|
|
128
24
|
flex: 1,
|
|
129
|
-
backgroundColor:
|
|
25
|
+
backgroundColor: Colors.background
|
|
130
26
|
},
|
|
131
27
|
header: {
|
|
132
|
-
backgroundColor:
|
|
133
|
-
padding: 16
|
|
134
|
-
borderBottomWidth: 1,
|
|
135
|
-
borderBottomColor: '#e0e0e0'
|
|
28
|
+
backgroundColor: Colors.white,
|
|
29
|
+
padding: 16
|
|
136
30
|
},
|
|
137
31
|
headerTitle: {
|
|
138
32
|
fontSize: 20,
|
|
139
33
|
fontWeight: '600',
|
|
140
|
-
color:
|
|
34
|
+
color: Colors.black,
|
|
141
35
|
textAlign: 'center'
|
|
142
36
|
},
|
|
143
37
|
scrollView: {
|
|
144
38
|
flex: 1
|
|
145
|
-
},
|
|
146
|
-
statsGrid: {
|
|
147
|
-
flexDirection: 'row',
|
|
148
|
-
flexWrap: 'wrap',
|
|
149
|
-
padding: 8,
|
|
150
|
-
justifyContent: 'space-between'
|
|
151
|
-
},
|
|
152
|
-
statCard: {
|
|
153
|
-
width: '48%',
|
|
154
|
-
padding: 20,
|
|
155
|
-
borderRadius: 12,
|
|
156
|
-
alignItems: 'center',
|
|
157
|
-
marginBottom: 16
|
|
158
|
-
},
|
|
159
|
-
statIcon: {
|
|
160
|
-
fontSize: 32,
|
|
161
|
-
marginBottom: 8
|
|
162
|
-
},
|
|
163
|
-
statValue: {
|
|
164
|
-
fontSize: 24,
|
|
165
|
-
fontWeight: '700',
|
|
166
|
-
color: '#333',
|
|
167
|
-
marginBottom: 4
|
|
168
|
-
},
|
|
169
|
-
statTitle: {
|
|
170
|
-
fontSize: 12,
|
|
171
|
-
color: '#666',
|
|
172
|
-
textAlign: 'center'
|
|
173
|
-
},
|
|
174
|
-
section: {
|
|
175
|
-
padding: 16
|
|
176
|
-
},
|
|
177
|
-
sectionTitle: {
|
|
178
|
-
fontSize: 18,
|
|
179
|
-
fontWeight: '600',
|
|
180
|
-
color: '#333',
|
|
181
|
-
marginBottom: 16
|
|
182
|
-
},
|
|
183
|
-
activityItem: {
|
|
184
|
-
backgroundColor: '#fff',
|
|
185
|
-
flexDirection: 'row',
|
|
186
|
-
padding: 16,
|
|
187
|
-
borderRadius: 12,
|
|
188
|
-
marginBottom: 12,
|
|
189
|
-
alignItems: 'center'
|
|
190
|
-
},
|
|
191
|
-
activityIcon: {
|
|
192
|
-
width: 48,
|
|
193
|
-
height: 48,
|
|
194
|
-
borderRadius: 24,
|
|
195
|
-
backgroundColor: '#f5f5f5',
|
|
196
|
-
justifyContent: 'center',
|
|
197
|
-
alignItems: 'center',
|
|
198
|
-
marginRight: 16
|
|
199
|
-
},
|
|
200
|
-
activityIconText: {
|
|
201
|
-
fontSize: 24
|
|
202
|
-
},
|
|
203
|
-
activityContent: {
|
|
204
|
-
flex: 1
|
|
205
|
-
},
|
|
206
|
-
activityTitle: {
|
|
207
|
-
fontSize: 16,
|
|
208
|
-
fontWeight: '600',
|
|
209
|
-
color: '#333',
|
|
210
|
-
marginBottom: 4
|
|
211
|
-
},
|
|
212
|
-
activityDescription: {
|
|
213
|
-
fontSize: 14,
|
|
214
|
-
color: '#666'
|
|
215
39
|
}
|
|
216
40
|
});
|
|
217
41
|
//# sourceMappingURL=ReportsScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["View","Text","StyleSheet","ScrollView","SafeAreaView","Colors","jsx","_jsx","jsxs","_jsxs","NotificationsScreen","style","styles","container","edges","children","header","headerTitle","scrollView","create","flex","backgroundColor","background","white","padding","fontSize","fontWeight","color","black","textAlign"],"sourceRoot":"../../../src","sources":["screens/ReportsScreen.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AACjE,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,MAAM,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE7C,eAAe,SAASC,mBAAmBA,CAAA,EAAG;EAC5C,oBACED,KAAA,CAACL,YAAY;IAACO,KAAK,EAAEC,MAAM,CAACC,SAAU;IAACC,KAAK,EAAE,CAAC,QAAQ,CAAE;IAAAC,QAAA,gBACvDR,IAAA,CAACP,IAAI;MAACW,KAAK,EAAEC,MAAM,CAACI,MAAO;MAAAD,QAAA,eACzBR,IAAA,CAACN,IAAI;QAACU,KAAK,EAAEC,MAAM,CAACK,WAAY;QAAAF,QAAA,EAAC;MAAO,CAAM;IAAC,CAC3C,CAAC,eACPR,IAAA,CAACJ,UAAU;MAACQ,KAAK,EAAEC,MAAM,CAACM;IAAW,CAAa,CAAC;EAAA,CACvC,CAAC;AAEnB;AAEA,MAAMN,MAAM,GAAGV,UAAU,CAACiB,MAAM,CAAC;EAC/BN,SAAS,EAAE;IACTO,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEhB,MAAM,CAACiB;EAC1B,CAAC;EACDN,MAAM,EAAE;IACNK,eAAe,EAAEhB,MAAM,CAACkB,KAAK;IAC7BC,OAAO,EAAE;EACX,CAAC;EACDP,WAAW,EAAE;IACXQ,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAEtB,MAAM,CAACuB,KAAK;IACnBC,SAAS,EAAE;EACb,CAAC;EACDX,UAAU,EAAE;IACVE,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -35,5 +35,5 @@ export interface SalespandaAppProps {
|
|
|
35
35
|
* Main Salespanda App Component
|
|
36
36
|
* Can be used as a standalone app or embedded in another React Native app
|
|
37
37
|
*/
|
|
38
|
-
export default function SalespandaApp({ navigationRef, theme, standalone, onReady, useDrawer, wrapWithGestureHandler, }?: SalespandaAppProps): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export default function SalespandaApp({ navigationRef, theme: customTheme, standalone, onReady, useDrawer, wrapWithGestureHandler, }?: SalespandaAppProps): import("react/jsx-runtime").JSX.Element;
|
|
39
39
|
//# sourceMappingURL=SalespandaApp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SalespandaApp.d.ts","sourceRoot":"","sources":["../../../src/SalespandaApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SalespandaApp.d.ts","sourceRoot":"","sources":["../../../src/SalespandaApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAErC;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,aAAa,EACb,KAAK,EAAE,WAAW,EAClB,UAAkB,EAClB,OAAO,EACP,SAAgB,EAChB,sBAA8B,GAC/B,GAAE,kBAAuB,2CAmDzB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ImageSourcePropType } from 'react-native';
|
|
2
|
+
export declare const homeIcon: ImageSourcePropType;
|
|
3
|
+
export declare const homeIconActive: ImageSourcePropType;
|
|
4
|
+
export declare const analyticsIcon: ImageSourcePropType;
|
|
5
|
+
export declare const analyticsIconActive: ImageSourcePropType;
|
|
6
|
+
export declare const crmIcon: ImageSourcePropType;
|
|
7
|
+
export declare const crmIconActive: ImageSourcePropType;
|
|
8
|
+
export declare const diaryIcon: ImageSourcePropType;
|
|
9
|
+
export declare const diaryIconActive: ImageSourcePropType;
|
|
10
|
+
export declare const notificationIcon: ImageSourcePropType;
|
|
11
|
+
export declare const notificationIconActive: ImageSourcePropType;
|
|
12
|
+
export type IconPair = {
|
|
13
|
+
default: ImageSourcePropType;
|
|
14
|
+
active: ImageSourcePropType;
|
|
15
|
+
};
|
|
16
|
+
export declare const bottomTabIcons: Record<string, IconPair>;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/assets/images/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,QAAQ,EAAE,mBAAsD,CAAC;AAC9E,eAAO,MAAM,cAAc,EAAE,mBAA4D,CAAC;AAC1F,eAAO,MAAM,aAAa,EAAE,mBAA2D,CAAC;AACxF,eAAO,MAAM,mBAAmB,EAAE,mBAAiE,CAAC;AACpG,eAAO,MAAM,OAAO,EAAE,mBAAqD,CAAC;AAC5E,eAAO,MAAM,aAAa,EAAE,mBAA2D,CAAC;AACxF,eAAO,MAAM,SAAS,EAAE,mBAAuD,CAAC;AAChF,eAAO,MAAM,eAAe,EAAE,mBAA6D,CAAC;AAC5F,eAAO,MAAM,gBAAgB,EAAE,mBAA8D,CAAC;AAC9F,eAAO,MAAM,sBAAsB,EAAE,mBAAoE,CAAC;AAE1G,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAqBnD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const Colors: {
|
|
2
|
+
readonly primary: "#46bdd3";
|
|
3
|
+
readonly white: "#ffffff";
|
|
4
|
+
readonly black: "#322F2F";
|
|
5
|
+
readonly background: "#ffffff";
|
|
6
|
+
readonly border: "#e0e0e0";
|
|
7
|
+
readonly divider: "#e0e0e0";
|
|
8
|
+
readonly white50: "rgba(255, 255, 255, 0.5)";
|
|
9
|
+
readonly black50: "rgba(0, 0, 0, 0.2)";
|
|
10
|
+
readonly black30: "rgba(0, 0, 0, 0.3)";
|
|
11
|
+
readonly black20: "rgba(0, 0, 0, 0.2)";
|
|
12
|
+
readonly black10: "rgba(0, 0, 0, 0.1)";
|
|
13
|
+
};
|
|
14
|
+
export type ColorKey = keyof typeof Colors;
|
|
15
|
+
//# sourceMappingURL=Colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../../../src/constants/Colors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;CAaT,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,MAAM,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns different values based on the platform
|
|
3
|
+
* @param value - Single value to use for both platforms, or object with platform specific values
|
|
4
|
+
* @param androidValue - Optional value for Android (if not provided, uses the same value for both platforms)
|
|
5
|
+
* @returns Platform specific value
|
|
6
|
+
*/
|
|
7
|
+
export declare const GetPlatform: <T>(value: T | {
|
|
8
|
+
ios: T;
|
|
9
|
+
android: T;
|
|
10
|
+
}, androidValue?: T) => T;
|
|
11
|
+
//# sourceMappingURL=GetPlatorm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetPlatorm.d.ts","sourceRoot":"","sources":["../../../../src/constants/GetPlatorm.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,OAAO,CAAC,GAAG;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,EACjC,eAAe,CAAC,KACf,CAiBF,CAAC"}
|
|
@@ -22,5 +22,5 @@ export { default as HomeScreen } from './screens/HomeScreen';
|
|
|
22
22
|
export { default as ProfileScreen } from './screens/ProfileScreen';
|
|
23
23
|
export { default as NotificationsScreen } from './screens/NotificationsScreen';
|
|
24
24
|
export { default as ReportsScreen } from './screens/ReportsScreen';
|
|
25
|
-
export { default as PremiumScreen } from './screens/
|
|
25
|
+
export { default as PremiumScreen } from './screens/CRMScreen';
|
|
26
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAKhF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAKhF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigation/AppNavigator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AppNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigation/AppNavigator.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,YAAY,4CAWnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigation/BottomTabNavigator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BottomTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigation/BottomTabNavigator.tsx"],"names":[],"mappings":"AAwBA,MAAM,CAAC,OAAO,UAAU,kBAAkB,4CAkGzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigation/DrawerNavigator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DrawerNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigation/DrawerNavigator.tsx"],"names":[],"mappings":"AA8JA,MAAM,CAAC,OAAO,UAAU,eAAe,4CAuCtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CRMScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/CRMScreen.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,SAAS,4CAShC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomeScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/HomeScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HomeScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/HomeScreen.tsx"],"names":[],"mappings":"AA8BA,MAAM,CAAC,OAAO,UAAU,UAAU,4CA6FjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationsScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/NotificationsScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NotificationsScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/NotificationsScreen.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,mBAAmB,4CAS1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/ProfileScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProfileScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/ProfileScreen.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,aAAa,4CASpC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export default function
|
|
1
|
+
export default function NotificationsScreen(): import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=ReportsScreen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportsScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/ReportsScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReportsScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/ReportsScreen.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,mBAAmB,4CAS1C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-salespanda",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "sdk",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -68,6 +68,8 @@
|
|
|
68
68
|
"@react-native-community/cli": "20.0.1",
|
|
69
69
|
"@react-native/babel-preset": "0.81.1",
|
|
70
70
|
"@react-native/eslint-config": "^0.81.1",
|
|
71
|
+
"@react-native/metro-babel-transformer": "0.81.1",
|
|
72
|
+
"@react-native/metro-config": "0.81.1",
|
|
71
73
|
"@react-navigation/bottom-tabs": "^7.8.2",
|
|
72
74
|
"@react-navigation/drawer": "^7.7.2",
|
|
73
75
|
"@react-navigation/native": "^7.1.19",
|
package/src/SalespandaApp.tsx
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { NavigationContainer } from '@react-navigation/native';
|
|
2
|
+
import { NavigationContainer, DefaultTheme } from '@react-navigation/native';
|
|
3
3
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
4
4
|
import DrawerNavigator from './navigation/DrawerNavigator';
|
|
5
5
|
import BottomTabNavigator from './navigation/BottomTabNavigator';
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
SafeAreaProvider,
|
|
8
|
+
initialWindowMetrics,
|
|
9
|
+
} from 'react-native-safe-area-context';
|
|
10
|
+
import { Colors } from './constants/Colors';
|
|
7
11
|
|
|
8
12
|
export interface SalespandaAppProps {
|
|
9
13
|
/**
|
|
@@ -49,7 +53,7 @@ export interface SalespandaAppProps {
|
|
|
49
53
|
*/
|
|
50
54
|
export default function SalespandaApp({
|
|
51
55
|
navigationRef,
|
|
52
|
-
theme,
|
|
56
|
+
theme: customTheme,
|
|
53
57
|
standalone = false,
|
|
54
58
|
onReady,
|
|
55
59
|
useDrawer = true,
|
|
@@ -57,7 +61,7 @@ export default function SalespandaApp({
|
|
|
57
61
|
}: SalespandaAppProps = {}) {
|
|
58
62
|
// TODO: Apply theme to app (future enhancement)
|
|
59
63
|
// Currently theme is managed through SalespandaConfig
|
|
60
|
-
void
|
|
64
|
+
void customTheme;
|
|
61
65
|
|
|
62
66
|
// Use drawer navigation by default, or bottom tabs only if specified
|
|
63
67
|
const AppContent = () =>
|
|
@@ -70,12 +74,28 @@ export default function SalespandaApp({
|
|
|
70
74
|
}
|
|
71
75
|
|
|
72
76
|
// Navigation content with SafeAreaProvider
|
|
77
|
+
const navTheme = {
|
|
78
|
+
...DefaultTheme,
|
|
79
|
+
colors: {
|
|
80
|
+
...DefaultTheme.colors,
|
|
81
|
+
background: Colors.background,
|
|
82
|
+
primary: Colors.primary,
|
|
83
|
+
card: Colors.white,
|
|
84
|
+
text: Colors.black,
|
|
85
|
+
border: Colors.border,
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
|
|
73
89
|
const NavigationContent = (
|
|
74
|
-
<
|
|
75
|
-
<
|
|
90
|
+
<SafeAreaProvider initialMetrics={initialWindowMetrics}>
|
|
91
|
+
<NavigationContainer
|
|
92
|
+
ref={navigationRef}
|
|
93
|
+
onReady={onReady}
|
|
94
|
+
theme={navTheme}
|
|
95
|
+
>
|
|
76
96
|
<AppContent />
|
|
77
|
-
</
|
|
78
|
-
</
|
|
97
|
+
</NavigationContainer>
|
|
98
|
+
</SafeAreaProvider>
|
|
79
99
|
);
|
|
80
100
|
|
|
81
101
|
// Wrap with GestureHandlerRootView only if requested
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Bottom Tab Icons
|
|
2
|
+
export const homeIcon = require('./bottomtabs/home.png');
|
|
3
|
+
export const homeIconActive = require('./bottomtabs/homeactive.png');
|
|
4
|
+
export const analyticsIcon = require('./bottomtabs/analytics.png');
|
|
5
|
+
export const analyticsIconActive = require('./bottomtabs/analyticsactive.png');
|
|
6
|
+
export const crmIcon = require('./bottomtabs/crm.png');
|
|
7
|
+
export const crmIconActive = require('./bottomtabs/crmactive.png');
|
|
8
|
+
export const diaryIcon = require('./bottomtabs/diary.png');
|
|
9
|
+
export const diaryIconActive = require('./bottomtabs/diaryactive.png');
|
|
10
|
+
export const notificationIcon = require('./bottomtabs/notification.png');
|
|
11
|
+
export const notificationIconActive = require('./bottomtabs/notificationactive.png');
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ImageSourcePropType } from 'react-native';
|
|
2
|
+
|
|
3
|
+
export const homeIcon: ImageSourcePropType = require('./bottomtabs/home.png');
|
|
4
|
+
export const homeIconActive: ImageSourcePropType = require('./bottomtabs/homeactive.png');
|
|
5
|
+
export const analyticsIcon: ImageSourcePropType = require('./bottomtabs/analytics.png');
|
|
6
|
+
export const analyticsIconActive: ImageSourcePropType = require('./bottomtabs/analyticsactive.png');
|
|
7
|
+
export const crmIcon: ImageSourcePropType = require('./bottomtabs/crm.png');
|
|
8
|
+
export const crmIconActive: ImageSourcePropType = require('./bottomtabs/crmactive.png');
|
|
9
|
+
export const diaryIcon: ImageSourcePropType = require('./bottomtabs/diary.png');
|
|
10
|
+
export const diaryIconActive: ImageSourcePropType = require('./bottomtabs/diaryactive.png');
|
|
11
|
+
export const notificationIcon: ImageSourcePropType = require('./bottomtabs/notification.png');
|
|
12
|
+
export const notificationIconActive: ImageSourcePropType = require('./bottomtabs/notificationactive.png');
|
|
13
|
+
|
|
14
|
+
export type IconPair = {
|
|
15
|
+
default: ImageSourcePropType;
|
|
16
|
+
active: ImageSourcePropType;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const bottomTabIcons: Record<string, IconPair> = {
|
|
20
|
+
home: {
|
|
21
|
+
default: homeIcon,
|
|
22
|
+
active: homeIconActive,
|
|
23
|
+
},
|
|
24
|
+
analytics: {
|
|
25
|
+
default: analyticsIcon,
|
|
26
|
+
active: analyticsIconActive,
|
|
27
|
+
},
|
|
28
|
+
crm: {
|
|
29
|
+
default: crmIcon,
|
|
30
|
+
active: crmIconActive,
|
|
31
|
+
},
|
|
32
|
+
diary: {
|
|
33
|
+
default: diaryIcon,
|
|
34
|
+
active: diaryIconActive,
|
|
35
|
+
},
|
|
36
|
+
notification: {
|
|
37
|
+
default: notificationIcon,
|
|
38
|
+
active: notificationIconActive,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const Colors = {
|
|
2
|
+
// Minimal palette as requested
|
|
3
|
+
primary: '#46bdd3',
|
|
4
|
+
white: '#ffffff',
|
|
5
|
+
black: '#322F2F',
|
|
6
|
+
background: '#ffffff',
|
|
7
|
+
border: '#e0e0e0',
|
|
8
|
+
divider: '#e0e0e0',
|
|
9
|
+
white50: 'rgba(255, 255, 255, 0.5)',
|
|
10
|
+
black50: 'rgba(0, 0, 0, 0.2)',
|
|
11
|
+
black30: 'rgba(0, 0, 0, 0.3)',
|
|
12
|
+
black20: 'rgba(0, 0, 0, 0.2)',
|
|
13
|
+
black10: 'rgba(0, 0, 0, 0.1)',
|
|
14
|
+
} as const;
|
|
15
|
+
|
|
16
|
+
export type ColorKey = keyof typeof Colors;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Returns different values based on the platform
|
|
5
|
+
* @param value - Single value to use for both platforms, or object with platform specific values
|
|
6
|
+
* @param androidValue - Optional value for Android (if not provided, uses the same value for both platforms)
|
|
7
|
+
* @returns Platform specific value
|
|
8
|
+
*/
|
|
9
|
+
export const GetPlatform = <T>(
|
|
10
|
+
value: T | { ios: T; android: T },
|
|
11
|
+
androidValue?: T
|
|
12
|
+
): T => {
|
|
13
|
+
if (
|
|
14
|
+
value &&
|
|
15
|
+
typeof value === 'object' &&
|
|
16
|
+
'ios' in value &&
|
|
17
|
+
'android' in value
|
|
18
|
+
) {
|
|
19
|
+
return Platform.select({
|
|
20
|
+
ios: value.ios,
|
|
21
|
+
android: value.android,
|
|
22
|
+
}) as T;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return Platform.select({
|
|
26
|
+
ios: value as T,
|
|
27
|
+
android: androidValue ?? (value as T),
|
|
28
|
+
}) as T;
|
|
29
|
+
};
|
package/src/index.tsx
CHANGED
|
@@ -42,4 +42,4 @@ export { default as HomeScreen } from './screens/HomeScreen';
|
|
|
42
42
|
export { default as ProfileScreen } from './screens/ProfileScreen';
|
|
43
43
|
export { default as NotificationsScreen } from './screens/NotificationsScreen';
|
|
44
44
|
export { default as ReportsScreen } from './screens/ReportsScreen';
|
|
45
|
-
export { default as PremiumScreen } from './screens/
|
|
45
|
+
export { default as PremiumScreen } from './screens/CRMScreen';
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { NavigationContainer } from '@react-navigation/native';
|
|
2
2
|
import BottomTabNavigator from './BottomTabNavigator';
|
|
3
3
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
4
|
+
import { Colors } from '../constants/Colors';
|
|
4
5
|
|
|
5
6
|
export default function AppNavigator() {
|
|
6
7
|
return (
|
|
7
8
|
<NavigationContainer>
|
|
8
|
-
<SafeAreaView
|
|
9
|
+
<SafeAreaView
|
|
10
|
+
style={{ flex: 1, backgroundColor: Colors.background }}
|
|
11
|
+
edges={['bottom', 'top']}
|
|
12
|
+
>
|
|
9
13
|
<BottomTabNavigator />
|
|
10
14
|
</SafeAreaView>
|
|
11
15
|
</NavigationContainer>
|