aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/screens/chat/ChatListScreen.tsx17
-rw-r--r--src/services/ChatService.ts6
-rw-r--r--src/utils/messages.ts5
3 files changed, 20 insertions, 8 deletions
diff --git a/src/screens/chat/ChatListScreen.tsx b/src/screens/chat/ChatListScreen.tsx
index eb886232..f2395f0a 100644
--- a/src/screens/chat/ChatListScreen.tsx
+++ b/src/screens/chat/ChatListScreen.tsx
@@ -3,6 +3,7 @@ import {StackNavigationProp} from '@react-navigation/stack';
import React, {useContext, useEffect, useMemo, useState} from 'react';
import {Alert, SafeAreaView, StatusBar, StyleSheet, View} from 'react-native';
import {useSelector, useStore} from 'react-redux';
+import {connectChatAccount} from '../../utils';
import {ChannelList, Chat} from 'stream-chat-react-native';
import {ChatContext} from '../../App';
import {TabsGradient} from '../../components';
@@ -43,10 +44,20 @@ const ChatListScreen: React.FC<ChatListScreenProps> = () => {
);
useEffect(() => {
- if (!chatClientReady) {
- Alert.alert('Something wrong with chat');
+ let connected: boolean = !chatClient.user;
+ if (!connected) {
+ connectChatAccount(loggedInUserId, chatClient)
+ .then((success) => {
+ if (!success) {
+ Alert.alert('Something wrong with chat');
+ }
+ })
+ .catch((err) => {
+ console.log('Error connecting to chat: ', err);
+ Alert.alert('Something wrong with chat');
+ });
}
- }, [chatClientReady]);
+ }, []);
return (
<View style={styles.background}>
diff --git a/src/services/ChatService.ts b/src/services/ChatService.ts
index da65641c..e9b1c284 100644
--- a/src/services/ChatService.ts
+++ b/src/services/ChatService.ts
@@ -3,7 +3,7 @@ import {CHAT_TOKEN_ENDPOINT} from '../constants/api';
export const loadChatTokenService = async () => {
try {
- const token = await AsyncStorage.getItem('chatToken');
+ const token = await AsyncStorage.getItem('token');
const response = await fetch(CHAT_TOKEN_ENDPOINT, {
method: 'GET',
headers: {
@@ -12,8 +12,8 @@ export const loadChatTokenService = async () => {
});
const status = response.status;
if (status === 200) {
- const {chatToken} = await response.json();
- return chatToken;
+ const data = await response.json();
+ return data.chatToken;
}
return '';
} catch (error) {
diff --git a/src/utils/messages.ts b/src/utils/messages.ts
index 6b972b83..dc01d579 100644
--- a/src/utils/messages.ts
+++ b/src/utils/messages.ts
@@ -111,9 +111,10 @@ export const connectChatAccount = async (
export const getChatToken = async () => {
try {
- if (await AsyncStorage.getItem('chatToken')) {
+ const currentChatToken = await AsyncStorage.getItem('chatToken');
+ if (currentChatToken === null) {
const chatToken = await loadChatTokenService();
- AsyncStorage.setItem('chatToken', chatToken);
+ await AsyncStorage.setItem('chatToken', chatToken);
}
} catch (err) {
console.log(err);