defmodule AlgoraWeb.Components.Avatar do
@moduledoc false
use Phoenix.Component
attr(:src, :string)
attr(:alt, :string)
attr(:class, :string, default: nil)
attr(:rest, :global)
def user_avatar(assigns) do
~H"""
<.avatar class={@class} {@rest}>
<.avatar_fallback class="fallback">
<%= @alt
|> String.first()
|> String.upcase() %>
<.avatar_image src={@src} alt={@alt} />
"""
end
attr(:class, :string, default: nil)
attr(:rest, :global)
slot(:inner_block, required: true)
def avatar(assigns) do
~H"""
<%= render_slot(@inner_block) %>
"""
end
attr(:src, :string)
attr(:alt, :string)
attr(:class, :string, default: nil)
attr(:rest, :global)
def avatar_image(assigns) do
~H"""
"""
end
attr(:class, :string, default: nil)
attr(:rest, :global)
slot(:inner_block, required: false)
def avatar_fallback(assigns) do
~H"""
<%= render_slot(@inner_block) %>
"""
end
# TODO
defp cn(x), do: x
end