initial commit
This commit is contained in:
@@ -74,5 +74,17 @@ export class APIService {
|
||||
|
||||
return await response.json();
|
||||
}
|
||||
async getConversation( token: string, user1Id: string, user2Id:string ): Promise<Message[]> {
|
||||
const url = new URL( `${APIService.baseUrl}/get_conversation.php` );
|
||||
url.searchParams.set( "token", token );
|
||||
url.searchParams.set( "token", user1Id );
|
||||
url.searchParams.set( "conversation_id", user2Id );
|
||||
|
||||
const response = await fetch( url, {method: "GET"} );;
|
||||
if ( !response.ok ) {
|
||||
throw new Error ( 'Failed to fetch conversation: ' + response.statusText );
|
||||
}
|
||||
return await response.json();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,13 @@ export class ChatUI {
|
||||
container.scrollTop = container.scrollHeight;
|
||||
}
|
||||
|
||||
renderConversation( messages: Message[], currentUserId: string ): void {
|
||||
this.clearMessages();
|
||||
messages.forEach( ( message ) => {
|
||||
this.renderMessage( message, currentUserId );
|
||||
});
|
||||
}
|
||||
|
||||
// show error message - auto-hide after 5 seconds
|
||||
|
||||
showError ( message: string ) : void {
|
||||
|
||||
+18
-8
@@ -128,17 +128,27 @@ async function loadUsers(): Promise<boolean> {
|
||||
try {
|
||||
const users = await api.getUsers(state.getToken(), state.getUserId());
|
||||
ui.clearError();
|
||||
|
||||
ui.renderUserList(users, (user: User) => {
|
||||
state.setSelectedReceiverId(user.id);
|
||||
ui.setActiveUser(user.id);
|
||||
ui.clearMessages();
|
||||
});
|
||||
|
||||
ui.renderUserList(users, onUserClick );
|
||||
return true;
|
||||
} catch (error) {
|
||||
ui.showError("Could not load user list.");
|
||||
console.error("Error loading user list:", error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const onUserClick = async ( user: User ) => {
|
||||
ui.setActiveUser( user.id );
|
||||
ui.showView( "chat-view" );
|
||||
|
||||
try {
|
||||
const conversation = await api.getConversation(
|
||||
state.getToken(),
|
||||
state.getUserId(),
|
||||
user.id
|
||||
);
|
||||
ui.renderConversation( conversation, state.getUserId() );
|
||||
} catch (error) {
|
||||
ui.showError("Could not load conversation. Please try again.");
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user