Packages
moon
2.86.0
2.90.5
retired
2.90.4
2.90.3
2.90.2
2.90.1
2.90.0
2.89.4
2.89.1
2.89.0
2.88.0
2.87.11
2.87.10
2.87.9
2.87.8
2.87.7
2.87.6
2.87.5
2.87.4
2.87.3
2.87.2
2.87.1
2.87.0
2.86.1
2.86.0
2.85.1
2.85.0
2.84.0
2.83.0
2.82.0
2.81.4
2.81.3
2.81.2
2.81.1
2.81.0
2.80.2
2.80.1
2.80.0
2.79.13
2.79.12
2.79.11
2.79.10
2.79.9
2.79.8
2.79.7
2.79.6
2.79.5
2.79.4
2.79.3
2.79.2
2.79.1
2.79.0
2.78.4
2.78.3
2.78.2
2.78.1
2.78.0
2.77.0
2.76.5
2.76.4
2.76.3
2.76.2
2.76.1
2.76.0
2.75.0
2.74.1
2.74.0
2.73.8
2.73.7
2.73.6
2.73.5
2.73.4
2.73.3
2.73.2
2.73.1
2.73.0
2.72.5
2.72.4
2.72.3
2.72.2
2.72.1
2.72.0
2.71.1
2.71.0
2.70.0
2.69.2
2.69.1
2.69.0
2.68.11
2.68.10
Components-based design system written in elixir
Current section
Files
Jump to
Current section
Files
lib/moon_web/examples/design/alert_example/handle_close.ex
defmodule MoonWeb.Examples.Design.AlertExample.HandleClose do
@moduledoc false
use Moon.StatefulComponent
use MoonWeb, :example
alias Moon.Design.Button
alias Moon.Design.Alert
prop(is_open, :boolean, default: true)
def render(assigns) do
~F"""
<div class="flex flex-wrap items-center justify-around gap-2 w-full bg-transparent">
{#if @is_open == true}
<Alert>
Click the Close button to hide the Alert
<Alert.Close on_click="close_alert" />
</Alert>
{#else}
<Button variant="outline" on_click="open_alert">
Show Alert
</Button>
{/if}
</div>
"""
end
def handle_event("open_alert", _params, socket) do
socket = assign(socket, is_open: true)
{:noreply, socket}
end
def handle_event("close_alert", _params, socket) do
socket = assign(socket, is_open: false)
{:noreply, socket}
end
def code() do
"""
alias Moon.Design.Button
alias Moon.Design.Alert
prop(is_open, :boolean, default: true)
...
<div class="flex flex-wrap items-center justify-around gap-2 w-full bg-transparent">
{#if @is_open == true}
<Alert>
Click the Close button to hide the Alert
<Alert.Close on_click="close_alert" />
</Alert>
{#else}
<Button variant="outline" on_click="open_alert">
Show Alert
</Button>
{/if}
</div>
...
def handle_event("open_alert", _params, socket) do
socket = assign(socket, is_open: true)
{:noreply, socket}
end
def handle_event("close_alert", _params, socket) do
socket = assign(socket, is_open: false)
{:noreply, socket}
end
"""
end
end