lib/phoenix_webcomponent/card.ex
defmodule Phoenix.WebComponent.Card do
@moduledoc """
Render card.
"""
use Phoenix.WebComponent, :component
# alias Phoenix.LiveView.JS
@doc """
Generates card
"""
def wc_card(assigns) do
assigns =
assigns
|> assign_new(:id, fn -> false end)
|> assign_new(:class, fn -> "" end)
|> assign_new(:title, fn -> nil end)
~H"""
<div id={@id} class={"bg-white w-auto h-fit m-4 p-6 flex flex-col shadow #{@class}"}>
<%= unless is_nil(@title) do %>
<div class="w-full text-xl flex flex-row justify-start items-center h-10 mb-4">
<%= render_slot(@title) %>
</div>
<% end %>
<%= render_slot(@inner_block) %>
</div>
"""
end
end