diff --git a/assets/js/user_socket.ts b/assets/js/user_socket.ts index 7b38799..b07f9e0 100644 --- a/assets/js/user_socket.ts +++ b/assets/js/user_socket.ts @@ -42,6 +42,7 @@ const init = () => { channel.on("new_msg", (payload) => { const messageItem = document.createElement("div"); + messageItem.id = `message-${payload.id}`; messageItem.className = "group hover:bg-white/5 relative px-4"; const senderItem = document.createElement("span"); diff --git a/lib/algora_web/channels/room_channel.ex b/lib/algora_web/channels/room_channel.ex index d203735..0ca13e6 100644 --- a/lib/algora_web/channels/room_channel.ex +++ b/lib/algora_web/channels/room_channel.ex @@ -13,12 +13,17 @@ defmodule AlgoraWeb.RoomChannel do "room:" <> video_id = socket.topic if user do - broadcast!(socket, "new_msg", %{user: %{id: user.id, handle: user.handle}, body: body}) + message = + Repo.insert!(%Message{ + body: body, + user_id: user.id, + video_id: String.to_integer(video_id) + }) - Repo.insert!(%Message{ - body: body, - user_id: user.id, - video_id: String.to_integer(video_id) + broadcast!(socket, "new_msg", %{ + user: %{id: user.id, handle: user.handle}, + id: message.id, + body: body }) end