feat(chat): toggle room membership on index page

This commit is contained in:
2024-11-17 22:18:34 +00:00
parent 3f97444908
commit 24c457413d
2 changed files with 33 additions and 0 deletions

View File

@@ -37,6 +37,17 @@ defmodule SlaxWeb.ChatRoomLive.Index do
<% end %>
</div>
</div>
<button
class="opacity-0 group-hover:opacity-100 bg-white hover:bg-gray-100 border border-gray-400 text-gray-700 px-3 py-1.5 w-24 rounded-sm font-bold"
phx-click="toggle-room-membership"
phx-value-id={room.id}
>
<%= if joined? do %>
Leave
<% else %>
Join
<% end %>
</button>
</div>
</div>
</div>
@@ -56,4 +67,14 @@ defmodule SlaxWeb.ChatRoomLive.Index do
{:ok, socket}
end
@impl Phoenix.LiveView
def handle_event("toggle-room-membership", %{"id" => id}, socket) do
{room, joined?} =
id
|> Chat.get_room!()
|> Chat.toggle_room_membership(socket.assigns.current_user)
{:noreply, stream_insert(socket, :rooms, {room, joined?})}
end
end