mitgliederverwaltung/lib/mv_web/member_live/show.ex
Moritz a468f3edbe
Some checks failed
continuous-integration/drone/push Build is failing
WIP: add liveview
2025-05-07 19:32:38 +02:00

57 lines
1.3 KiB
Elixir

defmodule MvWeb.MemberLive.Show do
use MvWeb, :live_view
@impl true
def render(assigns) do
~H"""
<.header>
Member {@member.id}
<:subtitle>This is a member record from your database.</:subtitle>
<:actions>
<.link patch={~p"/members/#{@member}/show/edit"} phx-click={JS.push_focus()}>
<.button>Edit member</.button>
</.link>
</:actions>
</.header>
<.list>
<:item title="Id">{@member.id}</:item>
</.list>
<.back navigate={~p"/members"}>Back to members</.back>
<.modal
:if={@live_action == :edit}
id="member-modal"
show
on_cancel={JS.patch(~p"/members/#{@member}")}
>
<.live_component
module={MvWeb.MemberLive.FormComponent}
id={@member.id}
title={@page_title}
action={@live_action}
member={@member}
patch={~p"/members/#{@member}"}
/>
</.modal>
"""
end
@impl true
def mount(_params, _session, socket) do
{:ok, socket}
end
@impl true
def handle_params(%{"id" => id}, _, socket) do
{:noreply,
socket
|> assign(:page_title, page_title(socket.assigns.live_action))
|> assign(:member, Ash.get!(Mv.Membership.Member, id))}
end
defp page_title(:show), do: "Show Member"
defp page_title(:edit), do: "Edit Member"
end