defmodule MoonWeb.Pages.Design.SwitchPage do
@moduledoc false
require Logger
use MoonWeb, :live_view
alias MoonWeb.Components.Page
alias MoonWeb.Components.ComponentPageDescription
alias MoonWeb.Components.ExamplesList
alias MoonWeb.Components.PropsTable
alias MoonWeb.Examples.Design.SwitchExample
# TODO: move to example as soon as context will be propagated through moon helper
alias MoonWeb.Components.ExampleAndCode
alias Moon.Design.Switch
defp dark_switch_code() do
"""
alias Moon.Design.Switch
def handle_event("toggle_dark", _params, socket) do
is_dark = !String.contains?(socket.assigns.theme_name, "-dark")
theme = String.replace(socket.assigns.theme_name, ["-light", "-dark"], "")
{:noreply, assign(socket, theme_name: "\#{theme}-\#{is_dark && "dark" || "light"}")}
end
...
"""
end
data(breadcrumbs, :any,
default: [
%{
to: "/components",
name: "Components"
},
%{
to: "/components/v2/switch",
name: "Switch"
}
]
)
def render(assigns) do
~F"""
Switch is a control that is used to quickly switch between two possible states.
Switches are only used for these binary actions that occur immediately
after the user “flips” the switch.