Current section

Files

Jump to
satsuma lib button.ex
Raw

lib/button.ex

defmodule Satsuma.Button do
use Phoenix.Component
import Satsuma.Util
@doc """
Renders a button.
## Examples
<.button>Send!</.button>
<.button phx-click="go" class="danger">Send!</.button>
"""
attr(:full_width, :boolean, default: false)
attr(:class, :string, default: "")
attr(:rest, :global, include: ~w(disabled form name value))
slot(:inner_block, required: true)
def button(assigns) do
classes =
class_names(%{
satsuma_button: true,
"satsuma_button--full-width": assigns.full_width
})
assigns = assign(assigns, :classes, classes)
~H"""
<button class={[@classes | [@class]]} {@rest}><%= render_slot(@inner_block) %></button>
"""
end
end