Skip to content

Commit 569c266

Browse files
committed
GH-365: [feat] chats work real time and chatlist updates every 3 seconds, no unread ui updates yet
1 parent ed31129 commit 569c266

4 files changed

Lines changed: 21 additions & 12 deletions

File tree

ClientApp/app/(tabs)/chats/[id].tsx

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Bubble, Composer, GiftedChat, IMessage, InputToolbar, InputToolbarProps
77
import {useSelector} from "react-redux";
88
import {getMessages, getChatroom, deleteChatroom, leaveChatroom} from "@/services/chatService";
99
import { Client } from "@stomp/stompjs";
10-
import { getAccessToken } from "@/services/tokenService"
10+
import { getAccessToken, refreshAccessToken, startTokenRefresh } from "@/services/tokenService"
1111
import {message, chatroomProps, messageRequest} from "@/types/messaging";
1212
import { mvs } from '@/utils/helpers/uiScaler';
1313
import { set } from 'date-fns';
@@ -78,7 +78,12 @@ const ChatScreen = () => {
7878
console.error('Failed to get access token:', error);
7979
}
8080
};
81+
const interval = setInterval(() => {
82+
refreshAccessToken()
83+
response();
84+
}, 180000);
8185

86+
refreshAccessToken();
8287
response();
8388
}, []);
8489

@@ -144,8 +149,8 @@ const ChatScreen = () => {
144149
createdAt: new Date(JSON.parse(message.body).createdAt),
145150
user: {
146151
_id: JSON.parse(message.body).senderId,
147-
name: 'Sender Name', // Replace with actual sender name if available
148-
avatar: avatarPlaceholder, // Replace with actual avatar URL if available
152+
name: JSON.parse(message.body).sendName, // Replace with actual sender name if available
153+
avatar: JSON.parse(message.body).senderAvatar, // Replace with actual avatar URL if available
149154
},
150155
},
151156
...prev,
@@ -168,7 +173,6 @@ const ChatScreen = () => {
168173

169174
try {
170175
const messagesData = await getMessages(id.toString());
171-
console.log("messageData: ", messagesData);
172176

173177
// Ensure messagesData is mapped to IMessage structure
174178
const formattedMessages = messagesData.map((message: any) => ({
@@ -183,7 +187,8 @@ const ChatScreen = () => {
183187
}));
184188

185189
const chatroomData = await getChatroom(id.toString());
186-
console.log("chatroomData: ", chatroomData);
190+
191+
// console.log("chatroomData: ", chatroomData);
187192

188193
setChatroom(chatroomData);
189194
setMessages(formattedMessages);
@@ -201,8 +206,6 @@ const ChatScreen = () => {
201206

202207
const onSend = useCallback((newMessages: IMessage[] = []) => {
203208
let attachments: string[] = [];
204-
console.log("newMessages: ", newMessages);
205-
console.log("chatroom: ", chatroom);
206209

207210
if (!Array.isArray(newMessages)) return;
208211
try {
@@ -224,7 +227,7 @@ const ChatScreen = () => {
224227
senderName: user.username,
225228
// senderImage: user.avatar,
226229
}
227-
console.log("newMessageRequest: ",newMessageRequest);
230+
// TODO remove log
228231
// @ts-ignore
229232
clientRef.current.publish({
230233
destination: "/app/message",

ClientApp/components/chat/ChatList.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,19 @@ const Chats = () => {
5656
throw error;
5757
}
5858
};
59-
fetchChatrooms(user);
59+
60+
const intervalId = setInterval(() => {
61+
fetchChatrooms(user);
62+
}, 3000);
63+
64+
fetchChatrooms(user); // Initial fetch
6065

6166
return () => {
67+
clearInterval(intervalId); // Cleanup interval
6268
setChatrooms([]); // Cleanup if needed
6369
};
6470
}, [user])
6571
);
66-
console.log("chatrooms", chatrooms);
6772
return (
6873
<FlatList
6974
data={chatrooms}

ClientApp/components/chat/NewChatModal.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ const NewChatModal: React.FC<NewChatModalProps> = ({
4545
let chatroomId = '';
4646
console.log("Creating group with friends from onCreateGroup:", selectedFriends);
4747
try {
48-
const response = await createUserChatroom(LoggedUser.id, LoggedUser.username, '', title, selectedFriends, [], false, false)
48+
// TODO the last "true" is done to help the read unread status
49+
const response = await createUserChatroom(LoggedUser.id, LoggedUser.username, '', title, selectedFriends, [], false, true)
4950
chatroomId = response.chatroomId;
5051

5152
if (!chatroomId) {

ClientApp/types/messaging.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export interface message {
77
content: string; //required
88
createdAt: Number | Date;
99
attachments: string[];
10-
// avatar: string
10+
senderImage: string
1111
}
1212

1313
export interface chatroomProps {

0 commit comments

Comments
 (0)