Hello I would like to know if it’s possible to render the template on a .html.heex
file for compoients inside liveview
I have this component
attr :group, Group
attr :user_id, :integer
def group(assigns) do
~H"""
<div class="group space-y-4" id={"group-#{@group.id}"}>
<div class="flex">
<div class="flex-1"></div>
<%= if Enum.count(@group.users) > 1 && @group.user_id == @user_id do %>
<button
phx-value-group_id={@group.id}
class="font-semibold text-accent icon"
phx-click="new-leader"
>
<.icon name="log-out" /> Leave Group
</button>
<% else %>
<button
data-confirm={gettext("Are you sure to leave the group?")}
phx-click="leave-group"
phx-value-group_id={@group.id}
class="font-semibold text-accent icon"
>
<.icon name="log-out" /> {gettext("Leave Group")}
</button>
<% end %>
</div>
<div class="text-xl">
{@group.name}
</div>
<div :for={{user, index} <- Enum.with_index(@group.users)} class="leading-3 flex gap-2">
<div class="text-secondary">
{index + 1}
</div>
<div>
<div>
{user.name}
</div>
<div class="text-sm text-secondary">
{user.email}
</div>
</div>
</div>
<div class="flex justify-between">
<.link patch={~p"/groups/#{@group.slug}"} class="text-primary font-semibold">
View All
</.link>
<%= if @user_id == @group.user_id do %>
<.link patch={~p"/groups/#{@group.slug}/add_members"} class="text-primary font-semibold">
{gettext("Add members")}
</.link>
<% end %>
</div>
</div>
"""
end
Can I move this to a group.html.heex
and call from the group
function, I had some suggestions from AI but did not work, one of them was
def group(assigns) do
render("group.html", assigns)
end