Skip to content

Commit

Permalink
fix: edit message not received (#163)
Browse files Browse the repository at this point in the history
* fix: close all chats not working

* fix: edited message not received

* fix: close all chats not working (#161) (#162)
  • Loading branch information
Dun-sin authored Oct 19, 2022
1 parent f1178d0 commit b9cfcc7
Show file tree
Hide file tree
Showing 3 changed files with 302 additions and 229 deletions.
24 changes: 21 additions & 3 deletions client/src/components/Chat.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const Chat = () => {
const { auth, logout } = useAuth();
const socket = useContext(SocketContext);

const { sendMessage, deleteMessage } = useChatUtils(socket);
const { sendMessage, deleteMessage, editMessage } = useChatUtils(socket);
const inputRef = useRef('');
senderId = auth.email ?? auth.loginId;

Expand Down Expand Up @@ -61,14 +61,20 @@ const Chat = () => {
removeMessage(id, chatId);
};

const editMessageHandler = ({ id, chatId, newMessage }) => {
editText(id, chatId, newMessage)
}

// This is used to recive message form other user.
socket.on('receive_message', newMessageHandler);
socket.on('delete_message', deleteMessageHandler);
socket.on('edit_message', editMessageHandler)
setCurrentChatId(localStorage.getItem('currentChatId'));

return () => {
socket.off('receive_message', newMessageHandler);
socket.off('delete_message', deleteMessageHandler);
socket.off('edit_message', editMessageHandler)
};
}, []);

Expand Down Expand Up @@ -177,7 +183,7 @@ const Chat = () => {


// Here whenever user will submit message it will be send to the server
const handleSubmit = (e) => {
const handleSubmit = async (e) => {
e.preventDefault();

const d = new Date();
Expand All @@ -187,7 +193,19 @@ const Chat = () => {
}

if (editing.isediting === true) {
editText(editing.messageID, currentChatId, message)
try {
await editMessage({
id: editing.messageID,
chatId: currentChatId,
newMessage: message
})
editText(editing.messageID, currentChatId, message)
const messageObject = getMessage(editing.messageID)
updateMessage(editing.messageID, messageObject)
} catch {
setEditing({ isediting: false, messageID: null })
return;
}
setEditing({ isediting: false, messageID: null })
} else {
doSend({
Expand Down
25 changes: 25 additions & 0 deletions client/src/lib/chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,33 @@ export default function useChatUtils(socket) {
});
}

function editMessage({ id, chatId, newMessage }) {
return new Promise((resolve, reject) => {
if (!socket.connected) {
reject(null);
return;
}

socket
.timeout(30000)
.emit(
'edit_message',
{ id, chatId, newMessage },
(err, messageEdited) => {
if (err) {
reject(err);
return;
}

resolve(messageEdited);
}
);
});
}

return {
sendMessage,
deleteMessage,
editMessage,
};
}
Loading

1 comment on commit b9cfcc7

@vercel
Copy link

@vercel vercel bot commented on b9cfcc7 Oct 19, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.