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' ;
77import {
88 ActivityIndicator ,
99 Alert ,
1010 LogBox ,
1111 SafeAreaView ,
1212 StyleSheet ,
1313 View ,
14+ useColorScheme ,
1415} from 'react-native' ;
15- import { AppearanceProvider , useColorScheme } from 'react-native-appearance' ;
1616import {
1717 SafeAreaProvider ,
1818 useSafeAreaInsets ,
1919} from 'react-native-safe-area-context' ;
20- import { Chat , OverlayProvider } from 'stream-chat-react-native' ;
20+ import { Chat , OverlayProvider } from 'stream-chat-react-native' ;
2121
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' ;
2525import 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' ;
4141
4242LogBox . ignoreAllLogs ( ) ;
4343const Tab = createBottomTabNavigator ( ) ;
@@ -97,49 +97,47 @@ export default () => {
9797 return (
9898 < SafeAreaView >
9999 < View style = { styles . loadingContainer } >
100- < ActivityIndicator color = " black" size = " small" />
100+ < ActivityIndicator color = ' black' size = ' small' />
101101 </ View >
102102 </ SafeAreaView >
103103 ) ;
104104 }
105105
106106 return (
107107 < 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 >
143141 </ SafeAreaProvider >
144142 ) ;
145143} ;
@@ -148,56 +146,56 @@ const ModalStackNavigator = () => (
148146 < ModalStack . Navigator >
149147 < ModalStack . Screen
150148 component = { ChannelSearchScreen }
151- name = " ChannelSearchScreen"
152- options = { { headerShown : false } }
149+ name = ' ChannelSearchScreen'
150+ options = { { headerShown : false } }
153151 />
154152 < ModalStack . Screen
155153 component = { JumpToSearchScreen }
156- name = " JumpToSearchScreen"
157- options = { { headerShown : false } }
154+ name = ' JumpToSearchScreen'
155+ options = { { headerShown : false } }
158156 />
159157 < ModalStack . Screen
160158 component = { NewMessageScreen }
161- name = " NewMessageScreen"
162- options = { { headerShown : false } }
159+ name = ' NewMessageScreen'
160+ options = { { headerShown : false } }
163161 />
164162 < ModalStack . Screen
165163 component = { ShareMessageScreen }
166- name = " ShareMessageScreen"
167- options = { { headerShown : false } }
164+ name = ' ShareMessageScreen'
165+ options = { { headerShown : false } }
168166 />
169167 </ ModalStack . Navigator >
170168) ;
171169
172170const HomeStackNavigator = ( ) => (
173- < HomeStack . Navigator initialRouteName = " ChannelListScreen" >
171+ < HomeStack . Navigator initialRouteName = ' ChannelListScreen' >
174172 < HomeStack . Screen
175173 component = { ChannelListScreen }
176- name = " ChannelListScreen"
177- options = { { headerShown : false } }
174+ name = ' ChannelListScreen'
175+ options = { { headerShown : false } }
178176 />
179177 < HomeStack . Screen
180178 component = { ChannelScreen }
181- name = " ChannelScreen"
182- options = { { headerShown : false } }
179+ name = ' ChannelScreen'
180+ options = { { headerShown : false } }
183181 />
184182 < HomeStack . Screen
185183 component = { DraftsScreen }
186- name = " DraftsScreen"
187- options = { { headerShown : false } }
184+ name = ' DraftsScreen'
185+ options = { { headerShown : false } }
188186 />
189187 < HomeStack . Screen
190188 component = { ThreadScreen }
191- name = " ThreadScreen"
192- options = { { headerShown : false } }
189+ name = ' ThreadScreen'
190+ options = { { headerShown : false } }
193191 />
194192 </ HomeStack . Navigator >
195193) ;
196194
197195const TabNavigation = ( ) => (
198196 < 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' />
201199 < Tab . Screen component = { DirectMessagesScreen } name = { 'dms' } />
202200 < Tab . Screen component = { MentionsScreen } name = { 'mentions' } />
203201 < Tab . Screen component = { MessageSearchScreen } name = { 'search' } />
@@ -208,21 +206,21 @@ const TabNavigation = () => (
208206
209207const RootNavigation = ( ) => {
210208 const chatStyles = useStreamChatTheme ( ) ;
211- const { bottom, top} = useSafeAreaInsets ( ) ;
209+ const { bottom, top } = useSafeAreaInsets ( ) ;
212210
213211 return (
214212 < OverlayProvider bottomInset = { bottom + HEADER_HEIGHT } topInset = { top } >
215213 < Chat client = { ChatClientStore . client } style = { chatStyles } >
216- < RootStack . Navigator mode = " modal" >
214+ < RootStack . Navigator mode = ' modal' >
217215 < RootStack . Screen
218216 component = { TabNavigation }
219- name = " Tabs"
220- options = { { headerShown : false } }
217+ name = ' Tabs'
218+ options = { { headerShown : false } }
221219 />
222220 < RootStack . Screen
223221 component = { ModalStackNavigator }
224222 name = { 'Modals' }
225- options = { { headerShown : false } }
223+ options = { { headerShown : false } }
226224 />
227225 </ RootStack . Navigator >
228226 </ Chat >
@@ -231,7 +229,7 @@ const RootNavigation = () => {
231229} ;
232230
233231const styles = StyleSheet . create ( {
234- channelScreenContainer : { flexDirection : 'column' , height : '100%' } ,
232+ channelScreenContainer : { flexDirection : 'column' , height : '100%' } ,
235233 channelScreenSaveAreaView : {
236234 backgroundColor : 'white' ,
237235 } ,
0 commit comments