react-native-salespanda 0.2.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.
Files changed (94) hide show
  1. package/Salespanda.podspec +4 -0
  2. package/android/build.gradle +2 -0
  3. package/lib/module/SalespandaApp.js +70 -0
  4. package/lib/module/SalespandaApp.js.map +1 -0
  5. package/lib/module/assets/images/bottomtabs/analytics.png +0 -0
  6. package/lib/module/assets/images/bottomtabs/analyticsactive.png +0 -0
  7. package/lib/module/assets/images/bottomtabs/crm.png +0 -0
  8. package/lib/module/assets/images/bottomtabs/crmactive.png +0 -0
  9. package/lib/module/assets/images/bottomtabs/diary.png +0 -0
  10. package/lib/module/assets/images/bottomtabs/diaryactive.png +0 -0
  11. package/lib/module/assets/images/bottomtabs/home.png +0 -0
  12. package/lib/module/assets/images/bottomtabs/homeactive.png +0 -0
  13. package/lib/module/assets/images/bottomtabs/notification.png +0 -0
  14. package/lib/module/assets/images/bottomtabs/notificationactive.png +0 -0
  15. package/lib/module/assets/images/index.js +35 -0
  16. package/lib/module/assets/images/index.js.map +1 -0
  17. package/lib/module/config/SalespandaConfig.js +68 -0
  18. package/lib/module/config/SalespandaConfig.js.map +1 -0
  19. package/lib/module/constants/Colors.js +17 -0
  20. package/lib/module/constants/Colors.js.map +1 -0
  21. package/lib/module/constants/GetPlatorm.js +23 -0
  22. package/lib/module/constants/GetPlatorm.js.map +1 -0
  23. package/lib/module/index.js +28 -7
  24. package/lib/module/index.js.map +1 -1
  25. package/lib/module/navigation/AppNavigator.js +11 -2
  26. package/lib/module/navigation/AppNavigator.js.map +1 -1
  27. package/lib/module/navigation/BottomTabNavigator.js +100 -73
  28. package/lib/module/navigation/BottomTabNavigator.js.map +1 -1
  29. package/lib/module/navigation/DrawerNavigator.js +214 -127
  30. package/lib/module/navigation/DrawerNavigator.js.map +1 -1
  31. package/lib/module/screens/CRMScreen.js +41 -0
  32. package/lib/module/screens/CRMScreen.js.map +1 -0
  33. package/lib/module/screens/HomeScreen.js +123 -170
  34. package/lib/module/screens/HomeScreen.js.map +1 -1
  35. package/lib/module/screens/NotificationsScreen.js +11 -97
  36. package/lib/module/screens/NotificationsScreen.js.map +1 -1
  37. package/lib/module/screens/ProfileScreen.js +13 -119
  38. package/lib/module/screens/ProfileScreen.js.map +1 -1
  39. package/lib/module/screens/ReportsScreen.js +11 -187
  40. package/lib/module/screens/ReportsScreen.js.map +1 -1
  41. package/lib/typescript/src/SalespandaApp.d.ts +39 -0
  42. package/lib/typescript/src/SalespandaApp.d.ts.map +1 -0
  43. package/lib/typescript/src/assets/images/index.d.ts +17 -0
  44. package/lib/typescript/src/assets/images/index.d.ts.map +1 -0
  45. package/lib/typescript/src/config/SalespandaConfig.d.ts +52 -0
  46. package/lib/typescript/src/config/SalespandaConfig.d.ts.map +1 -0
  47. package/lib/typescript/src/constants/Colors.d.ts +15 -0
  48. package/lib/typescript/src/constants/Colors.d.ts.map +1 -0
  49. package/lib/typescript/src/constants/GetPlatorm.d.ts +11 -0
  50. package/lib/typescript/src/constants/GetPlatorm.d.ts.map +1 -0
  51. package/lib/typescript/src/index.d.ts +18 -2
  52. package/lib/typescript/src/index.d.ts.map +1 -1
  53. package/lib/typescript/src/navigation/AppNavigator.d.ts.map +1 -1
  54. package/lib/typescript/src/navigation/BottomTabNavigator.d.ts.map +1 -1
  55. package/lib/typescript/src/navigation/DrawerNavigator.d.ts.map +1 -1
  56. package/lib/typescript/src/screens/CRMScreen.d.ts +2 -0
  57. package/lib/typescript/src/screens/CRMScreen.d.ts.map +1 -0
  58. package/lib/typescript/src/screens/HomeScreen.d.ts.map +1 -1
  59. package/lib/typescript/src/screens/NotificationsScreen.d.ts.map +1 -1
  60. package/lib/typescript/src/screens/ProfileScreen.d.ts.map +1 -1
  61. package/lib/typescript/src/screens/ReportsScreen.d.ts +1 -1
  62. package/lib/typescript/src/screens/ReportsScreen.d.ts.map +1 -1
  63. package/package.json +20 -11
  64. package/react-native.config.js +9 -0
  65. package/src/SalespandaApp.tsx +112 -0
  66. package/src/assets/images/bottomtabs/analytics.png +0 -0
  67. package/src/assets/images/bottomtabs/analyticsactive.png +0 -0
  68. package/src/assets/images/bottomtabs/crm.png +0 -0
  69. package/src/assets/images/bottomtabs/crmactive.png +0 -0
  70. package/src/assets/images/bottomtabs/diary.png +0 -0
  71. package/src/assets/images/bottomtabs/diaryactive.png +0 -0
  72. package/src/assets/images/bottomtabs/home.png +0 -0
  73. package/src/assets/images/bottomtabs/homeactive.png +0 -0
  74. package/src/assets/images/bottomtabs/notification.png +0 -0
  75. package/src/assets/images/bottomtabs/notificationactive.png +0 -0
  76. package/src/assets/images/index.js +11 -0
  77. package/src/assets/images/index.ts +40 -0
  78. package/src/config/SalespandaConfig.ts +105 -0
  79. package/src/constants/Colors.ts +16 -0
  80. package/src/constants/GetPlatorm.ts +29 -0
  81. package/src/index.tsx +35 -7
  82. package/src/navigation/AppNavigator.tsx +9 -2
  83. package/src/navigation/BottomTabNavigator.tsx +110 -51
  84. package/src/navigation/DrawerNavigator.tsx +179 -126
  85. package/src/screens/CRMScreen.tsx +34 -0
  86. package/src/screens/HomeScreen.tsx +110 -143
  87. package/src/screens/NotificationsScreen.tsx +9 -110
  88. package/src/screens/ProfileScreen.tsx +10 -97
  89. package/src/screens/ReportsScreen.tsx +9 -166
  90. package/lib/module/screens/PremiumScreen.js +0 -222
  91. package/lib/module/screens/PremiumScreen.js.map +0 -1
  92. package/lib/typescript/src/screens/PremiumScreen.d.ts +0 -2
  93. package/lib/typescript/src/screens/PremiumScreen.d.ts.map +0 -1
  94. package/src/screens/PremiumScreen.tsx +0 -250
@@ -1,64 +1,123 @@
1
1
  import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
2
- import { Text } from 'react-native';
2
+ import { Image, View } from 'react-native';
3
3
  import HomeScreen from '../screens/HomeScreen';
4
- import PremiumScreen from '../screens/PremiumScreen';
5
4
  import NotificationsScreen from '../screens/NotificationsScreen';
6
5
  import ReportsScreen from '../screens/ReportsScreen';
6
+ import ProfileScreen from '../screens/ProfileScreen';
7
+ import { SafeAreaView } from 'react-native-safe-area-context';
8
+ import { Colors } from '../constants/Colors';
9
+ import {
10
+ analyticsIcon,
11
+ analyticsIconActive,
12
+ crmIcon,
13
+ crmIconActive,
14
+ diaryIcon,
15
+ diaryIconActive,
16
+ homeIcon,
17
+ homeIconActive,
18
+ notificationIcon,
19
+ notificationIconActive,
20
+ } from '../assets/images';
21
+ import CRMScreen from '../screens/CRMScreen';
7
22
 
8
23
  const Tab = createBottomTabNavigator();
9
24
 
10
25
  export default function BottomTabNavigator() {
26
+ const renderImageIcon =
27
+ (inactive: any, active: any) =>
28
+ ({ focused, size }: { focused: boolean; size: number }) => {
29
+ if (focused) {
30
+ return (
31
+ <View
32
+ style={{
33
+ width: 48,
34
+ height: 48,
35
+ borderRadius: 24,
36
+ alignItems: 'center',
37
+ justifyContent: 'center',
38
+ borderWidth: 4,
39
+ borderColor: Colors.white,
40
+ transform: [{ translateY: -6 }],
41
+ }}
42
+ >
43
+ <Image
44
+ source={active}
45
+ resizeMode="contain"
46
+ style={{ width: 42, height: 42, tintColor: Colors.primary }}
47
+ />
48
+ </View>
49
+ );
50
+ }
51
+ return (
52
+ <Image
53
+ source={inactive}
54
+ resizeMode="contain"
55
+ style={{ width: size, height: size, tintColor: Colors.black30 }}
56
+ />
57
+ );
58
+ };
59
+
11
60
  return (
12
- <Tab.Navigator
13
- screenOptions={{
14
- headerShown: false,
15
- tabBarActiveTintColor: '#4a148c',
16
- tabBarInactiveTintColor: '#999',
17
- tabBarStyle: {
18
- borderTopWidth: 1,
19
- borderTopColor: '#e0e0e0',
20
- paddingBottom: 8,
21
- paddingTop: 8,
22
- height: 60,
23
- },
24
- }}
61
+ <SafeAreaView
62
+ style={{ flex: 1, backgroundColor: Colors.background }}
63
+ edges={['bottom']}
25
64
  >
26
- <Tab.Screen
27
- name="Home"
28
- component={HomeScreen}
29
- options={{
30
- tabBarIcon: ({ color, size }) => (
31
- <Text style={{ fontSize: size, color }}>🏠</Text>
32
- ),
33
- }}
34
- />
35
- <Tab.Screen
36
- name="Premium"
37
- component={PremiumScreen}
38
- options={{
39
- tabBarIcon: ({ color, size }) => (
40
- <Text style={{ fontSize: size, color }}>💎</Text>
41
- ),
42
- }}
43
- />
44
- <Tab.Screen
45
- name="Notifications"
46
- component={NotificationsScreen}
47
- options={{
48
- tabBarIcon: ({ color, size }) => (
49
- <Text style={{ fontSize: size, color }}>🔔</Text>
50
- ),
51
- }}
52
- />
53
- <Tab.Screen
54
- name="Reports"
55
- component={ReportsScreen}
56
- options={{
57
- tabBarIcon: ({ color, size }) => (
58
- <Text style={{ fontSize: size, color }}>📊</Text>
59
- ),
65
+ <Tab.Navigator
66
+ screenOptions={{
67
+ headerShown: false,
68
+ sceneStyle: { backgroundColor: Colors.background },
69
+ tabBarShowLabel: false,
70
+ tabBarStyle: {
71
+ borderTopWidth: 1,
72
+ borderTopColor: Colors.border,
73
+ backgroundColor: Colors.white,
74
+ paddingBottom: 10,
75
+ paddingTop: 8,
76
+ height: 64,
77
+ },
78
+ tabBarItemStyle: { overflow: 'visible' },
60
79
  }}
61
- />
62
- </Tab.Navigator>
80
+ >
81
+ <Tab.Screen
82
+ name="Home"
83
+ component={HomeScreen}
84
+ options={{
85
+ tabBarIcon: renderImageIcon(homeIcon, homeIconActive),
86
+ headerShown: false,
87
+ }}
88
+ />
89
+ <Tab.Screen
90
+ name="CRM"
91
+ component={CRMScreen}
92
+ options={{
93
+ tabBarIcon: renderImageIcon(crmIcon, crmIconActive),
94
+ }}
95
+ />
96
+ <Tab.Screen
97
+ name="Reports"
98
+ component={ReportsScreen}
99
+ options={{
100
+ tabBarIcon: renderImageIcon(diaryIcon, diaryIconActive),
101
+ }}
102
+ />
103
+ <Tab.Screen
104
+ name="Notifications"
105
+ component={NotificationsScreen}
106
+ options={{
107
+ tabBarIcon: renderImageIcon(
108
+ notificationIcon,
109
+ notificationIconActive
110
+ ),
111
+ }}
112
+ />
113
+ <Tab.Screen
114
+ name="Profile"
115
+ component={ProfileScreen}
116
+ options={{
117
+ tabBarIcon: renderImageIcon(analyticsIcon, analyticsIconActive),
118
+ }}
119
+ />
120
+ </Tab.Navigator>
121
+ </SafeAreaView>
63
122
  );
64
123
  }
@@ -9,20 +9,20 @@ import {
9
9
  ScrollView,
10
10
  } from 'react-native';
11
11
  import BottomTabNavigator from './BottomTabNavigator';
12
+ import { Colors } from '../constants/Colors';
12
13
  import ProfileScreen from '../screens/ProfileScreen';
14
+ import { GetPlatform } from '../constants/GetPlatorm';
13
15
 
14
16
  const Drawer = createDrawerNavigator();
15
17
 
16
18
  interface DrawerItemProps {
17
19
  label: string;
18
- icon: string;
19
20
  onPress: () => void;
20
21
  active?: boolean;
21
22
  }
22
23
 
23
24
  const DrawerItem: React.FC<DrawerItemProps> = ({
24
25
  label,
25
- icon,
26
26
  onPress,
27
27
  active = false,
28
28
  }) => {
@@ -31,7 +31,6 @@ const DrawerItem: React.FC<DrawerItemProps> = ({
31
31
  style={[styles.drawerItem, active && styles.activeDrawerItem]}
32
32
  onPress={onPress}
33
33
  >
34
- <Text style={styles.drawerIcon}>{icon}</Text>
35
34
  <Text style={[styles.drawerLabel, active && styles.activeDrawerLabel]}>
36
35
  {label}
37
36
  </Text>
@@ -40,99 +39,118 @@ const DrawerItem: React.FC<DrawerItemProps> = ({
40
39
  };
41
40
 
42
41
  function CustomDrawerContent(props: any) {
43
- const { navigation, state } = props;
44
- const currentRoute = state.routes[state.index].name;
42
+ const { navigation } = props;
45
43
 
46
- return (
47
- <View style={styles.drawerContainer}>
48
- <View style={styles.drawerHeader}>
49
- <Image
50
- source={{ uri: 'https://via.placeholder.com/80x80' }}
51
- style={styles.drawerAvatar}
52
- />
53
- <Text style={styles.drawerName}>John Doe</Text>
54
- <Text style={styles.drawerEmail}>john.doe@example.com</Text>
55
- </View>
56
-
57
- <ScrollView style={styles.drawerContent}>
58
- <DrawerItem
59
- label="Home"
60
- icon="🏠"
61
- active={currentRoute === 'HomeTabs'}
62
- onPress={() => navigation.navigate('HomeTabs')}
63
- />
64
- <DrawerItem
65
- label="Profile"
66
- icon="👤"
67
- active={currentRoute === 'Profile'}
68
- onPress={() => navigation.navigate('Profile')}
69
- />
70
- <DrawerItem
71
- label="Social Setup"
72
- icon="📢"
73
- onPress={() => {
74
- /* Add navigation */
75
- }}
76
- />
77
- <DrawerItem
78
- label="Microsite Setup"
79
- icon="⚙️"
80
- onPress={() => {
81
- /* Add navigation */
82
- }}
83
- />
84
- <DrawerItem
85
- label="Proposal"
86
- icon="📋"
87
- onPress={() => {
88
- /* Add navigation */
89
- }}
90
- />
91
- <DrawerItem
92
- label="Email Campaign"
93
- icon="📧"
94
- onPress={() => {
95
- /* Add navigation */
96
- }}
97
- />
98
- <DrawerItem
99
- label="View Microsite"
100
- icon="🎵"
101
- onPress={() => {
102
- /* Add navigation */
103
- }}
104
- />
105
- <DrawerItem
106
- label="Import Contact"
107
- icon="📄"
108
- onPress={() => {
109
- /* Add navigation */
110
- }}
111
- />
44
+ const [expanded, setExpanded] = React.useState<Record<string, boolean>>({
45
+ 'Campaign': false,
46
+ 'Sales WAR Room': false,
47
+ 'Pipeline': false,
48
+ });
49
+ const toggle = (key: string) =>
50
+ setExpanded((prev) => ({ ...prev, [key]: !prev[key] }));
112
51
 
113
- <View style={styles.drawerDivider} />
52
+ const groups: Array<{
53
+ label: string;
54
+ children?: Array<{ label: string; onPress: () => void }>;
55
+ onPress?: () => void;
56
+ }> = [
57
+ { label: 'Content Library', onPress: () => {} },
58
+ {
59
+ label: 'Campaign',
60
+ children: [
61
+ { label: 'Run Campaign', onPress: () => {} },
62
+ { label: 'List', onPress: () => {} },
63
+ ],
64
+ },
65
+ { label: 'My Activity', onPress: () => {} },
66
+ { label: 'DigiCard', onPress: () => {} },
67
+ { label: 'My Profile', onPress: () => navigation.navigate('Profile') },
68
+ {
69
+ label: 'Sales WAR Room',
70
+ children: [
71
+ { label: 'Forms & Brochures', onPress: () => {} },
72
+ { label: 'CXO Announcements', onPress: () => {} },
73
+ { label: 'Training/Sales Content', onPress: () => {} },
74
+ ],
75
+ },
76
+ { label: 'Tasks', onPress: () => {} },
77
+ { label: 'Import Phone Contacts', onPress: () => {} },
78
+ {
79
+ label: 'Pipeline',
80
+ children: [
81
+ { label: 'Leads', onPress: () => {} },
82
+ { label: 'Contacts', onPress: () => {} },
83
+ { label: 'Email Activity', onPress: () => {} },
84
+ ],
85
+ },
86
+ { label: 'Notification', onPress: () => {} },
87
+ { label: 'Settings', onPress: () => {} },
88
+ { label: 'Help & Support', onPress: () => {} },
89
+ ];
114
90
 
115
- <DrawerItem
116
- label="Settings"
117
- icon="⚙️"
118
- onPress={() => {
119
- /* Add navigation */
120
- }}
121
- />
122
- <DrawerItem
123
- label="Help & Support"
124
- icon="❓"
125
- onPress={() => {
126
- /* Add navigation */
127
- }}
128
- />
129
- <DrawerItem
130
- label="Logout"
131
- icon="🚪"
132
- onPress={() => {
133
- /* Add logout logic */
134
- }}
135
- />
91
+ return (
92
+ <View style={styles.drawerContainer}>
93
+ <ScrollView
94
+ style={styles.drawerContent}
95
+ showsVerticalScrollIndicator={false}
96
+ >
97
+ <View style={styles.drawerHeader}>
98
+ <View style={styles.headerRow}>
99
+ <Image
100
+ source={{ uri: 'https://via.placeholder.com/80x80' }}
101
+ style={styles.drawerAvatar}
102
+ />
103
+ <View style={styles.headerTextCol}>
104
+ <Text style={styles.drawerName}>Eduuu Parrtner</Text>
105
+ <TouchableOpacity style={styles.badgeButton}>
106
+ <Text style={styles.badgeText}>Go to Microsite</Text>
107
+ </TouchableOpacity>
108
+ </View>
109
+ </View>
110
+ </View>
111
+ {groups.map((group, index) => {
112
+ const hasChildren =
113
+ Array.isArray(group.children) && group.children.length > 0;
114
+ if (!hasChildren) {
115
+ return (
116
+ <View key={group.label}>
117
+ {index > 0 ? <View style={styles.drawerDivider} /> : null}
118
+ <DrawerItem
119
+ label={group.label}
120
+ onPress={group.onPress ?? (() => {})}
121
+ />
122
+ </View>
123
+ );
124
+ }
125
+ const isOpen = !!expanded[group.label];
126
+ return (
127
+ <View key={group.label}>
128
+ {index > 0 ? <View style={styles.drawerDivider} /> : null}
129
+ <TouchableOpacity
130
+ style={styles.drawerItem}
131
+ onPress={() => toggle(group.label)}
132
+ activeOpacity={0.7}
133
+ >
134
+ <Text style={[styles.drawerLabel, { flex: 1 }]}>
135
+ {group.label}
136
+ </Text>
137
+ <Text style={styles.chevron}>{isOpen ? '▾' : '▸'}</Text>
138
+ </TouchableOpacity>
139
+ {isOpen &&
140
+ group.children!.map((child, cIdx) => (
141
+ <View key={child.label}>
142
+ {cIdx > 0 ? <View style={styles.drawerDivider} /> : null}
143
+ <TouchableOpacity
144
+ style={styles.childItem}
145
+ onPress={child.onPress}
146
+ >
147
+ <Text style={styles.childLabel}>{child.label}</Text>
148
+ </TouchableOpacity>
149
+ </View>
150
+ ))}
151
+ </View>
152
+ );
153
+ })}
136
154
  </ScrollView>
137
155
  </View>
138
156
  );
@@ -144,13 +162,20 @@ export default function DrawerNavigator() {
144
162
  drawerContent={(props) => <CustomDrawerContent {...props} />}
145
163
  screenOptions={{
146
164
  headerShown: true,
147
- drawerType: 'front',
165
+ drawerType: 'slide',
166
+ swipeEdgeWidth: 100,
167
+ drawerStyle: {
168
+ width: 280,
169
+ backgroundColor: Colors.primary,
170
+ },
148
171
  headerStyle: {
149
- backgroundColor: '#4a148c',
172
+ backgroundColor: Colors.white,
150
173
  },
151
- headerTintColor: '#fff',
174
+ headerTintColor: Colors.primary,
175
+ headerTitleAlign: 'left',
152
176
  headerTitleStyle: {
153
177
  fontWeight: '600',
178
+ color: Colors.black,
154
179
  },
155
180
  }}
156
181
  >
@@ -158,7 +183,7 @@ export default function DrawerNavigator() {
158
183
  name="HomeTabs"
159
184
  component={BottomTabNavigator}
160
185
  options={{
161
- title: 'Salespanda',
186
+ title: 'Home Page',
162
187
  }}
163
188
  />
164
189
  <Drawer.Screen
@@ -175,32 +200,51 @@ export default function DrawerNavigator() {
175
200
  const styles = StyleSheet.create({
176
201
  drawerContainer: {
177
202
  flex: 1,
178
- backgroundColor: '#fff',
203
+ backgroundColor: Colors.primary,
179
204
  },
180
205
  drawerHeader: {
181
- backgroundColor: '#4a148c',
182
- padding: 20,
183
- paddingTop: 50,
206
+ backgroundColor: Colors.primary,
207
+ paddingHorizontal: 20,
208
+ paddingTop: 36,
209
+ paddingBottom: 16,
210
+ alignItems: 'flex-start',
211
+ },
212
+ headerRow: {
213
+ width: '100%',
214
+ flexDirection: 'row',
184
215
  alignItems: 'center',
216
+ marginTop: GetPlatform(20, 0),
185
217
  },
186
218
  drawerAvatar: {
187
- width: 80,
188
- height: 80,
219
+ width: 60,
220
+ height: 60,
189
221
  borderRadius: 40,
190
- marginBottom: 12,
191
- borderWidth: 3,
192
- borderColor: '#fff',
222
+ marginRight: 14,
223
+ borderWidth: 2,
224
+ borderColor: Colors.black30,
225
+ },
226
+ headerTextCol: {
227
+ flex: 1,
228
+ justifyContent: 'center',
193
229
  },
194
230
  drawerName: {
195
- fontSize: 18,
231
+ fontSize: 20,
196
232
  fontWeight: '600',
197
- color: '#fff',
198
- marginBottom: 4,
233
+ color: Colors.white,
234
+ marginBottom: 10,
199
235
  },
200
- drawerEmail: {
201
- fontSize: 14,
202
- color: '#fff',
203
- opacity: 0.8,
236
+ badgeButton: {
237
+ borderWidth: 1,
238
+ borderColor: Colors.white,
239
+ paddingHorizontal: 12,
240
+ paddingVertical: 6,
241
+ borderRadius: 16,
242
+ alignSelf: 'flex-start',
243
+ },
244
+ badgeText: {
245
+ color: Colors.white,
246
+ fontSize: 12,
247
+ fontWeight: '500',
204
248
  },
205
249
  drawerContent: {
206
250
  flex: 1,
@@ -209,30 +253,39 @@ const styles = StyleSheet.create({
209
253
  drawerItem: {
210
254
  flexDirection: 'row',
211
255
  alignItems: 'center',
212
- padding: 16,
256
+ padding: 10,
213
257
  paddingHorizontal: 20,
214
258
  },
215
259
  activeDrawerItem: {
216
- backgroundColor: '#f5f5f5',
217
- borderLeftWidth: 4,
218
- borderLeftColor: '#4a148c',
219
- },
220
- drawerIcon: {
221
- fontSize: 20,
222
- marginRight: 16,
223
- width: 24,
260
+ backgroundColor: 'rgba(255,255,255,0.08)',
261
+ borderLeftWidth: 0,
224
262
  },
225
263
  drawerLabel: {
226
264
  fontSize: 16,
227
- color: '#333',
265
+ color: Colors.white,
266
+ fontWeight: '700',
228
267
  },
229
268
  activeDrawerLabel: {
230
269
  fontWeight: '600',
231
- color: '#4a148c',
270
+ color: Colors.white,
271
+ },
272
+ chevron: {
273
+ color: 'rgba(255,255,255,0.9)',
274
+ fontSize: 24,
232
275
  },
233
276
  drawerDivider: {
234
277
  height: 1,
235
- backgroundColor: '#e0e0e0',
236
- marginVertical: 8,
278
+ backgroundColor: Colors.black10,
279
+ marginVertical: 4,
280
+ marginLeft: 20,
281
+ },
282
+ childItem: {
283
+ paddingVertical: 6,
284
+ paddingLeft: 60,
285
+ },
286
+ childLabel: {
287
+ fontSize: 15,
288
+ color: Colors.white,
289
+ fontWeight: '500',
237
290
  },
238
291
  });
@@ -0,0 +1,34 @@
1
+ import { View, Text, StyleSheet, ScrollView } from 'react-native';
2
+ import { SafeAreaView } from 'react-native-safe-area-context';
3
+ import { Colors } from '../constants/Colors';
4
+
5
+ export default function CRMScreen() {
6
+ return (
7
+ <SafeAreaView style={styles.container} edges={['bottom']}>
8
+ <View style={styles.header}>
9
+ <Text style={styles.headerTitle}>CRM</Text>
10
+ </View>
11
+ <ScrollView style={styles.scrollView}></ScrollView>
12
+ </SafeAreaView>
13
+ );
14
+ }
15
+
16
+ const styles = StyleSheet.create({
17
+ container: {
18
+ flex: 1,
19
+ backgroundColor: Colors.background,
20
+ },
21
+ header: {
22
+ backgroundColor: Colors.white,
23
+ padding: 16,
24
+ },
25
+ headerTitle: {
26
+ fontSize: 20,
27
+ fontWeight: '600',
28
+ color: Colors.black,
29
+ textAlign: 'center',
30
+ },
31
+ scrollView: {
32
+ flex: 1,
33
+ },
34
+ });