feat(chat): toggle room membership on index page
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user