26 lines
658 B
Elixir
26 lines
658 B
Elixir
defmodule Bones73kWeb.ModalComponent do
|
|
use Bones73kWeb, :live_component
|
|
|
|
@impl true
|
|
def render(assigns) do
|
|
~L"""
|
|
<div id="<%= @id %>" class="phx-modal"
|
|
phx-capture-click="close"
|
|
phx-window-keydown="close"
|
|
phx-key="escape"
|
|
phx-target="#<%= @id %>"
|
|
phx-page-loading>
|
|
|
|
<div class="phx-modal-content">
|
|
<%= live_patch raw("×"), to: @return_to, class: "phx-modal-close" %>
|
|
<%= live_component @socket, @component, @opts %>
|
|
</div>
|
|
</div>
|
|
"""
|
|
end
|
|
|
|
@impl true
|
|
def handle_event("close", _, socket) do
|
|
{:noreply, push_patch(socket, to: socket.assigns.return_to)}
|
|
end
|
|
end
|