defmodule MoonWeb.Pages.Components.DrawerPage do
@moduledoc false
use MoonWeb, :live_view
alias MoonWeb.Components.Facing.DeprecationWarning
alias Moon.Autolayouts.PullAside
alias Moon.Autolayouts.LeftToRight
alias Moon.Components.Button
alias Moon.Components.Drawer
alias MoonWeb.Components.ExampleAndCode
alias MoonWeb.Components.Page
alias MoonWeb.Components.ComponentPageDescription
data(breadcrumbs, :any,
default: [
%{
to: "#",
name: "Components v1"
},
%{
to: "/components/drawer",
name: "Drawer"
}
]
)
data(drawer_1_is_open, :boolean, default: false)
data(drawer_2_is_open, :boolean, default: false)
def render(assigns) do
~F"""
<:example>
<:title>Title text
<:content>Content here
<:footer>
<:left>
<:right>
<:code>{get_example_1_code()}
<:state>{get_example_1_state(assigns)}
<:example>
<:title>Title text
<:content>Content here
<:footer>
<:left>
<:right>
<:code>{get_example_2_code()}
<:state>{get_example_2_state(assigns)}
"""
end
def handle_params(_params, uri, socket) do
{:noreply, assign(socket, uri: uri)}
end
def handle_event("open_drawer_1", _params, socket) do
socket = assign(socket, drawer_1_is_open: true)
{:noreply, socket}
end
def handle_event("close_drawer_1", _params, socket) do
socket = assign(socket, drawer_1_is_open: false)
{:noreply, socket}
end
def handle_event("open_drawer_2", _params, socket) do
socket = assign(socket, drawer_2_is_open: true)
{:noreply, socket}
end
def handle_event("close_drawer_2", _params, socket) do
socket = assign(socket, drawer_2_is_open: false)
{:noreply, socket}
end
def get_example_1_code() do
"""
<:title>Title text
<:content>Content here
<:footer>
<:left>
<:right>
"""
end
def get_example_1_state(assigns) do
inspect(%{drawer_1_is_open: assigns.drawer_1_is_open})
end
def get_example_2_code() do
"""
<:title>Title text
<:content>Content here
<:footer>
<:left>
<:right>
"""
end
def get_example_2_state(assigns) do
inspect(%{drawer_2_is_open: assigns.drawer_2_is_open})
end
end