Skip to content

Commit 1aecd3f

Browse files
committed
fix: application of global config in sample app
1 parent f103b28 commit 1aecd3f

File tree

2 files changed

+26
-39
lines changed

2 files changed

+26
-39
lines changed

examples/SampleApp/App.tsx

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { createStackNavigator } from '@react-navigation/stack';
66
import { SafeAreaProvider } from 'react-native-safe-area-context';
77
import {
88
Chat,
9+
createTextComposerEmojiMiddleware,
910
OverlayProvider,
1011
SqliteClient,
1112
ThemeProvider,
12-
useChatContext,
1313
useOverlayContext,
1414
} from 'stream-chat-react-native';
1515
import { getMessaging } from '@react-native-firebase/messaging';
@@ -35,8 +35,12 @@ import { OneOnOneChannelDetailScreen } from './src/screens/OneOnOneChannelDetail
3535
import { SharedGroupsScreen } from './src/screens/SharedGroupsScreen';
3636
import { ThreadScreen } from './src/screens/ThreadScreen';
3737
import { UserSelectorScreen } from './src/screens/UserSelectorScreen';
38+
import { init, SearchIndex } from 'emoji-mart';
39+
import data from '@emoji-mart/data';
3840

39-
import type { LocalMessage, StreamChat } from 'stream-chat';
41+
import type { LocalMessage, StreamChat, TextComposerMiddleware } from 'stream-chat';
42+
43+
init({ data });
4044

4145
if (__DEV__) {
4246
DevSettings.addMenuItem('Reset local DB (offline storage)', () => {
@@ -119,6 +123,25 @@ const App = () => {
119123
};
120124
}, []);
121125

126+
useEffect(() => {
127+
if (!chatClient) {
128+
return;
129+
}
130+
chatClient.setMessageComposerSetupFunction(({ composer }) => {
131+
composer.updateConfig({
132+
drafts: {
133+
enabled: true,
134+
},
135+
});
136+
137+
composer.textComposer.middlewareExecutor.insert({
138+
middleware: [createTextComposerEmojiMiddleware(SearchIndex) as TextComposerMiddleware],
139+
position: { after: 'stream-io/text-composer/mentions-middleware' },
140+
unique: true,
141+
});
142+
});
143+
}, [chatClient]);
144+
122145
return (
123146
<SafeAreaProvider
124147
style={{
@@ -212,19 +235,6 @@ const UserSelector = () => (
212235
const HomeScreen = () => {
213236
const { overlay } = useOverlayContext();
214237

215-
const { client: chatClient } = useChatContext();
216-
217-
useEffect(() => {
218-
chatClient.setMessageComposerSetupFunction(({ composer }) => {
219-
console.log('Setting up message composer:', composer.tag);
220-
composer.updateConfig({
221-
drafts: {
222-
enabled: true,
223-
},
224-
});
225-
});
226-
}, [chatClient]);
227-
228238
return (
229239
<Stack.Navigator
230240
initialRouteName={initialChannelIdGlobalRef.current ? 'ChannelScreen' : 'MessagingScreen'}

examples/SampleApp/src/screens/ChannelScreen.tsx

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
import React, { useCallback, useEffect, useState } from 'react';
2-
import type {
3-
LocalMessage,
4-
Channel as StreamChatChannel,
5-
TextComposerMiddleware,
6-
} from 'stream-chat';
2+
import type { LocalMessage, Channel as StreamChatChannel } from 'stream-chat';
73
import { RouteProp, useFocusEffect, useNavigation } from '@react-navigation/native';
84
import {
95
Channel,
@@ -17,7 +13,6 @@ import {
1713
useTheme,
1814
useTypingString,
1915
AITypingIndicatorView,
20-
createTextComposerEmojiMiddleware,
2116
} from 'stream-chat-react-native';
2217
import { Platform, StyleSheet, View } from 'react-native';
2318
import type { StackNavigationProp } from '@react-navigation/stack';
@@ -30,10 +25,6 @@ import { useChannelMembersStatus } from '../hooks/useChannelMembersStatus';
3025

3126
import type { StackNavigatorParamList } from '../types';
3227
import { NetworkDownIndicator } from '../components/NetworkDownIndicator';
33-
import { init, SearchIndex } from 'emoji-mart';
34-
import data from '@emoji-mart/data';
35-
36-
init({ data });
3728

3829
export type ChannelScreenNavigationProp = StackNavigationProp<
3930
StackNavigatorParamList,
@@ -148,20 +139,6 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({
148139
setSelectedThread(undefined);
149140
});
150141

151-
useEffect(() => {
152-
if (!chatClient) {
153-
return;
154-
}
155-
156-
chatClient.setMessageComposerSetupFunction(({ composer }) => {
157-
composer.textComposer.middlewareExecutor.insert({
158-
middleware: [createTextComposerEmojiMiddleware(SearchIndex) as TextComposerMiddleware],
159-
position: { after: 'stream-io/text-composer/mentions-middleware' },
160-
unique: true,
161-
});
162-
});
163-
}, [chatClient]);
164-
165142
const onThreadSelect = useCallback(
166143
(thread: LocalMessage | null) => {
167144
setSelectedThread(thread);

0 commit comments

Comments
 (0)