-
Notifications
You must be signed in to change notification settings - Fork 92
Expand file tree
/
Copy pathNativeBottomTabsEmbeddedStacks.tsx
More file actions
119 lines (109 loc) · 3.02 KB
/
NativeBottomTabsEmbeddedStacks.tsx
File metadata and controls
119 lines (109 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import { Article } from '../Screens/Article';
import { Albums } from '../Screens/Albums';
import { Contacts } from '../Screens/Contacts';
import { Chat } from '../Screens/Chat';
import { createNativeBottomTabNavigator } from '@bottom-tabs/react-navigation';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { Dimensions, Platform } from 'react-native';
const headerOptions = {
headerShown: true,
headerLargeTitle: true,
};
const Tab = createNativeBottomTabNavigator();
const ArticleStack = createNativeStackNavigator();
const AlbumsStack = createNativeStackNavigator();
const ContactsStack = createNativeStackNavigator();
const ChatStack = createNativeStackNavigator();
function ArticleStackScreen() {
return (
<ArticleStack.Navigator>
<ArticleStack.Screen
options={{ ...headerOptions }}
name="ArticleScreen"
component={Article}
/>
</ArticleStack.Navigator>
);
}
function AlbumsStackScreen() {
return (
<AlbumsStack.Navigator>
<AlbumsStack.Screen
options={{ ...headerOptions }}
name="AlbumsScreen"
component={Albums}
/>
</AlbumsStack.Navigator>
);
}
function ContactsStackScreen() {
return (
<ContactsStack.Navigator>
<ContactsStack.Screen
options={{ ...headerOptions }}
name="ContactsScreen"
component={Contacts}
/>
</ContactsStack.Navigator>
);
}
function ChatStackScreen() {
return (
<ChatStack.Navigator>
<ChatStack.Screen
options={{ ...headerOptions }}
name="ChatScreen"
component={Chat}
/>
</ChatStack.Navigator>
);
}
function NativeBottomTabsEmbeddedStacks() {
console.log(Platform.Version, 'Platform.Version');
return (
<Tab.Navigator
onSearchTextChange={(text) => console.log(text)}
onSearchFocusChange={(isFocused) => console.log('isFocused', isFocused)}
>
<Tab.Screen
name="Article"
component={ArticleStackScreen}
options={{
tabBarBadge: '10',
tabBarIcon: () => require('../../assets/icons/article_dark.png'),
}}
/>
<Tab.Screen
name="Albums"
component={AlbumsStackScreen}
options={{
tabBarIcon: () => require('../../assets/icons/grid_dark.png'),
}}
/>
<Tab.Screen
name="Chat"
component={ChatStackScreen}
options={{
tabBarIcon: () =>
require('../../assets/icons/message-circle-code.svg'),
}}
/>
<Tab.Screen
name="Contacts"
component={ContactsStackScreen}
options={{
role: 'search',
tabBarIcon: () => require('../../assets/icons/person_dark.png'),
searchable: true,
navigationBarToolbarStyle:
Platform.Version === '26.0' &&
Platform.OS === 'ios' &&
Dimensions.get('window').width < 400
? 'hidden'
: 'visible',
}}
/>
</Tab.Navigator>
);
}
export default NativeBottomTabsEmbeddedStacks;