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