defmodule MoonWeb.Examples.Design.DrawerExample.Positions do
@moduledoc false
use Moon.StatefulComponent
use MoonWeb, :example
alias Moon.Design.Drawer
alias Moon.Design.Button
def render(assigns) do
~F"""
Screen start aligned Drawer
Drawer content
Screen top aligned Drawer
Drawer content
Screen end aligned Drawer
Drawer content
Screen bottom aligned Drawer
Drawer content
"""
end
def handle_event("open_start_drawer", _, socket) do
Drawer.open("start_drawer")
{:noreply, socket}
end
def handle_event("open_top_drawer", _, socket) do
Drawer.open("top_drawer")
{:noreply, socket}
end
def handle_event("open_bottom_drawer", _, socket) do
Drawer.open("bottom_drawer")
{:noreply, socket}
end
def handle_event("open_end_drawer", _, socket) do
Drawer.open("end_drawer")
{:noreply, socket}
end
def code() do
"""
alias Moon.Design.Drawer
alias Moon.Design.Button
def render(assigns) do
~F\"""
Screen start aligned Drawer
Drawer content
Screen top aligned Drawer
Drawer content
Screen end aligned Drawer
Drawer content
Screen bottom aligned Drawer
Drawer content
\"""
end
def handle_event("open_start_drawer", _, socket) do
Drawer.open("start_drawer")
{:noreply, socket}
end
def handle_event("open_top_drawer", _, socket) do
Drawer.open("top_drawer")
{:noreply, socket}
end
def handle_event("open_bottom_drawer", _, socket) do
Drawer.open("bottom_drawer")
{:noreply, socket}
end
def handle_event("open_end_drawer", _, socket) do
Drawer.open("end_drawer")
{:noreply, socket}
end
"""
end
end