1
- import { USER_ID , USER_TOKEN } from 'react-native-dotenv' ;
2
- import { BottomSheetModalProvider } from '@gorhom/bottom-sheet' ;
3
- import { createBottomTabNavigator } from '@react-navigation/bottom-tabs' ;
4
- import { NavigationContainer } from '@react-navigation/native' ;
5
- import { createStackNavigator } from '@react-navigation/stack' ;
6
- import React , { useEffect , useState } from 'react' ;
1
+ import { USER_ID , USER_TOKEN } from 'react-native-dotenv' ;
2
+ import { BottomSheetModalProvider } from '@gorhom/bottom-sheet' ;
3
+ import { createBottomTabNavigator } from '@react-navigation/bottom-tabs' ;
4
+ import { NavigationContainer } from '@react-navigation/native' ;
5
+ import { createStackNavigator } from '@react-navigation/stack' ;
6
+ import React , { useEffect , useState } from 'react' ;
7
7
import {
8
8
ActivityIndicator ,
9
9
Alert ,
10
10
LogBox ,
11
11
SafeAreaView ,
12
12
StyleSheet ,
13
13
View ,
14
+ useColorScheme ,
14
15
} from 'react-native' ;
15
- import { AppearanceProvider , useColorScheme } from 'react-native-appearance' ;
16
16
import {
17
17
SafeAreaProvider ,
18
18
useSafeAreaInsets ,
19
19
} from 'react-native-safe-area-context' ;
20
- import { Chat , OverlayProvider } from 'stream-chat-react-native' ;
20
+ import { Chat , OverlayProvider } from 'stream-chat-react-native' ;
21
21
22
- import { DarkTheme , LightTheme } from './src/appTheme' ;
23
- import { BottomTabs } from './src/components/BottomTabs' ;
24
- import { SlackAppContext } from './src/contexts/SlackAppContext' ;
22
+ import { DarkTheme , LightTheme } from './src/appTheme' ;
23
+ import { BottomTabs } from './src/components/BottomTabs' ;
24
+ import { SlackAppContext } from './src/contexts/SlackAppContext' ;
25
25
import useStreamChatTheme from './src/hooks/useStreamChatTheme' ;
26
- import { ChannelListScreen } from './src/screens/ChannelListScreen/ChannelListScreen' ;
27
- import { ChannelScreen } from './src/screens/ChannelScreen/ChannelScreen' ;
28
- import { ChannelSearchScreen } from './src/screens/ChannelSearchScreen/ChannelSearchScreen' ;
29
- import { JumpToSearchScreen } from './src/screens/ChannelSearchScreen/JumpToSearchScreen' ;
30
- import { DirectMessagesScreen } from './src/screens/DirectMessagesScreen' ;
31
- import { DraftsScreen } from './src/screens/DraftsScreen' ;
32
- import { MentionsScreen } from './src/screens/MentionsScreen/MentionsScreen' ;
33
- import { MessageSearchScreen } from './src/screens/MessageSearchScreen/MessageSearchScreen' ;
34
- import { NewMessageScreen } from './src/screens/NewMessageScreen/NewMessageScreen' ;
35
- import { ProfileScreen } from './src/screens/ProfileScreen' ;
36
- import { ShareMessageScreen } from './src/screens/ShareMessageScreen/ShareMessageScreen' ;
37
- import { ThreadScreen } from './src/screens/ThreadScreen' ;
38
- import { UserPickerModal } from './src/screens/UserPickerModal/UserPickerModal' ;
39
- import { HEADER_HEIGHT } from './src/utils' ;
40
- import { ChatClientStore } from './src/utils/ChatClientStore' ;
26
+ import { ChannelListScreen } from './src/screens/ChannelListScreen/ChannelListScreen' ;
27
+ import { ChannelScreen } from './src/screens/ChannelScreen/ChannelScreen' ;
28
+ import { ChannelSearchScreen } from './src/screens/ChannelSearchScreen/ChannelSearchScreen' ;
29
+ import { JumpToSearchScreen } from './src/screens/ChannelSearchScreen/JumpToSearchScreen' ;
30
+ import { DirectMessagesScreen } from './src/screens/DirectMessagesScreen' ;
31
+ import { DraftsScreen } from './src/screens/DraftsScreen' ;
32
+ import { MentionsScreen } from './src/screens/MentionsScreen/MentionsScreen' ;
33
+ import { MessageSearchScreen } from './src/screens/MessageSearchScreen/MessageSearchScreen' ;
34
+ import { NewMessageScreen } from './src/screens/NewMessageScreen/NewMessageScreen' ;
35
+ import { ProfileScreen } from './src/screens/ProfileScreen' ;
36
+ import { ShareMessageScreen } from './src/screens/ShareMessageScreen/ShareMessageScreen' ;
37
+ import { ThreadScreen } from './src/screens/ThreadScreen' ;
38
+ import { UserPickerModal } from './src/screens/UserPickerModal/UserPickerModal' ;
39
+ import { HEADER_HEIGHT } from './src/utils' ;
40
+ import { ChatClientStore } from './src/utils/ChatClientStore' ;
41
41
42
42
LogBox . ignoreAllLogs ( ) ;
43
43
const Tab = createBottomTabNavigator ( ) ;
@@ -97,49 +97,47 @@ export default () => {
97
97
return (
98
98
< SafeAreaView >
99
99
< View style = { styles . loadingContainer } >
100
- < ActivityIndicator color = " black" size = " small" />
100
+ < ActivityIndicator color = ' black' size = ' small' />
101
101
</ View >
102
102
</ SafeAreaView >
103
103
) ;
104
104
}
105
105
106
106
return (
107
107
< SafeAreaProvider >
108
- < AppearanceProvider >
109
- < NavigationContainer theme = { scheme === 'dark' ? DarkTheme : LightTheme } >
110
- < View style = { styles . container } >
111
- < SlackAppContext . Provider
112
- value = { {
113
- activeChannel,
114
- activeMessage,
115
- openUserPicker,
116
- setActiveChannel,
117
- setActiveMessage,
118
- switchUser : userId => {
119
- /**
120
- * Dev token generations will only work in case of development mode.
121
- * So please make sure you have auth check disabled, if you are planning to
122
- * check user picker feature.
123
- */
124
- const token = chatClient . devToken ( userId ) ;
125
- setCurrentUser ( {
126
- id : userId ,
127
- token,
128
- } ) ,
129
- setUserPickerVisible ( false ) ;
130
- } ,
131
- } } >
132
- < RootNavigation />
133
- < UserPickerModal
134
- label = { 'name' }
135
- modalVisible = { userPickerVisible }
136
- onRequestClose = { closeUserPicker }
137
- onValueChange = { closeUserPicker }
138
- />
139
- </ SlackAppContext . Provider >
140
- </ View >
141
- </ NavigationContainer >
142
- </ AppearanceProvider >
108
+ < NavigationContainer theme = { scheme === 'dark' ? DarkTheme : LightTheme } >
109
+ < View style = { styles . container } >
110
+ < SlackAppContext . Provider
111
+ value = { {
112
+ activeChannel,
113
+ activeMessage,
114
+ openUserPicker,
115
+ setActiveChannel,
116
+ setActiveMessage,
117
+ switchUser : ( userId ) => {
118
+ /**
119
+ * Dev token generations will only work in case of development mode.
120
+ * So please make sure you have auth check disabled, if you are planning to
121
+ * check user picker feature.
122
+ */
123
+ const token = chatClient . devToken ( userId ) ;
124
+ setCurrentUser ( {
125
+ id : userId ,
126
+ token,
127
+ } ) ,
128
+ setUserPickerVisible ( false ) ;
129
+ } ,
130
+ } } >
131
+ < RootNavigation />
132
+ < UserPickerModal
133
+ label = { 'name' }
134
+ modalVisible = { userPickerVisible }
135
+ onRequestClose = { closeUserPicker }
136
+ onValueChange = { closeUserPicker }
137
+ />
138
+ </ SlackAppContext . Provider >
139
+ </ View >
140
+ </ NavigationContainer >
143
141
</ SafeAreaProvider >
144
142
) ;
145
143
} ;
@@ -148,56 +146,56 @@ const ModalStackNavigator = () => (
148
146
< ModalStack . Navigator >
149
147
< ModalStack . Screen
150
148
component = { ChannelSearchScreen }
151
- name = " ChannelSearchScreen"
152
- options = { { headerShown : false } }
149
+ name = ' ChannelSearchScreen'
150
+ options = { { headerShown : false } }
153
151
/>
154
152
< ModalStack . Screen
155
153
component = { JumpToSearchScreen }
156
- name = " JumpToSearchScreen"
157
- options = { { headerShown : false } }
154
+ name = ' JumpToSearchScreen'
155
+ options = { { headerShown : false } }
158
156
/>
159
157
< ModalStack . Screen
160
158
component = { NewMessageScreen }
161
- name = " NewMessageScreen"
162
- options = { { headerShown : false } }
159
+ name = ' NewMessageScreen'
160
+ options = { { headerShown : false } }
163
161
/>
164
162
< ModalStack . Screen
165
163
component = { ShareMessageScreen }
166
- name = " ShareMessageScreen"
167
- options = { { headerShown : false } }
164
+ name = ' ShareMessageScreen'
165
+ options = { { headerShown : false } }
168
166
/>
169
167
</ ModalStack . Navigator >
170
168
) ;
171
169
172
170
const HomeStackNavigator = ( ) => (
173
- < HomeStack . Navigator initialRouteName = " ChannelListScreen" >
171
+ < HomeStack . Navigator initialRouteName = ' ChannelListScreen' >
174
172
< HomeStack . Screen
175
173
component = { ChannelListScreen }
176
- name = " ChannelListScreen"
177
- options = { { headerShown : false } }
174
+ name = ' ChannelListScreen'
175
+ options = { { headerShown : false } }
178
176
/>
179
177
< HomeStack . Screen
180
178
component = { ChannelScreen }
181
- name = " ChannelScreen"
182
- options = { { headerShown : false } }
179
+ name = ' ChannelScreen'
180
+ options = { { headerShown : false } }
183
181
/>
184
182
< HomeStack . Screen
185
183
component = { DraftsScreen }
186
- name = " DraftsScreen"
187
- options = { { headerShown : false } }
184
+ name = ' DraftsScreen'
185
+ options = { { headerShown : false } }
188
186
/>
189
187
< HomeStack . Screen
190
188
component = { ThreadScreen }
191
- name = " ThreadScreen"
192
- options = { { headerShown : false } }
189
+ name = ' ThreadScreen'
190
+ options = { { headerShown : false } }
193
191
/>
194
192
</ HomeStack . Navigator >
195
193
) ;
196
194
197
195
const TabNavigation = ( ) => (
198
196
< BottomSheetModalProvider >
199
- < Tab . Navigator tabBar = { props => < BottomTabs { ...props } /> } >
200
- < Tab . Screen component = { HomeStackNavigator } name = " home" />
197
+ < Tab . Navigator tabBar = { ( props ) => < BottomTabs { ...props } /> } >
198
+ < Tab . Screen component = { HomeStackNavigator } name = ' home' />
201
199
< Tab . Screen component = { DirectMessagesScreen } name = { 'dms' } />
202
200
< Tab . Screen component = { MentionsScreen } name = { 'mentions' } />
203
201
< Tab . Screen component = { MessageSearchScreen } name = { 'search' } />
@@ -208,21 +206,21 @@ const TabNavigation = () => (
208
206
209
207
const RootNavigation = ( ) => {
210
208
const chatStyles = useStreamChatTheme ( ) ;
211
- const { bottom, top} = useSafeAreaInsets ( ) ;
209
+ const { bottom, top } = useSafeAreaInsets ( ) ;
212
210
213
211
return (
214
212
< OverlayProvider bottomInset = { bottom + HEADER_HEIGHT } topInset = { top } >
215
213
< Chat client = { ChatClientStore . client } style = { chatStyles } >
216
- < RootStack . Navigator mode = " modal" >
214
+ < RootStack . Navigator mode = ' modal' >
217
215
< RootStack . Screen
218
216
component = { TabNavigation }
219
- name = " Tabs"
220
- options = { { headerShown : false } }
217
+ name = ' Tabs'
218
+ options = { { headerShown : false } }
221
219
/>
222
220
< RootStack . Screen
223
221
component = { ModalStackNavigator }
224
222
name = { 'Modals' }
225
- options = { { headerShown : false } }
223
+ options = { { headerShown : false } }
226
224
/>
227
225
</ RootStack . Navigator >
228
226
</ Chat >
@@ -231,7 +229,7 @@ const RootNavigation = () => {
231
229
} ;
232
230
233
231
const styles = StyleSheet . create ( {
234
- channelScreenContainer : { flexDirection : 'column' , height : '100%' } ,
232
+ channelScreenContainer : { flexDirection : 'column' , height : '100%' } ,
235
233
channelScreenSaveAreaView : {
236
234
backgroundColor : 'white' ,
237
235
} ,
0 commit comments