defmodule MoonWeb.Pages.Components.SwitchPage do @moduledoc false use MoonWeb, :live_view alias Moon.Components.Switch alias MoonWeb.Components.ExampleAndCode alias Moon.Components.Field alias Moon.Components.Form alias MoonWeb.Pages.Tutorials.AddDataUsingForm.User alias MoonWeb.Components.Page alias MoonWeb.Components.ComponentPageDescription alias MoonWeb.Components.PropsTable alias Moon.Components.Button alias Moon.Components.ErrorTag alias MoonWeb.Components.Facing.DeprecationWarning data(breadcrumbs, :any, default: [ %{ to: "#", name: "Components v1" }, %{ to: "/components/switch", name: "Switch" } ] ) data(props_info_array, :list, default: [ %{ :name => ~c"checked", :type => ~c"boolean ", :required => ~c"No", :default => ~c"false", :description => ~c"Is switch checked/unchecked" }, %{ :name => ~c"caption_unchecked", :type => ~c"string", :required => ~c"Yes", :default => ~c"-", :description => ~c"Displayed text when unchecked" }, %{ :name => ~c"caption_checked", :type => ~c"string", :required => ~c"Yes", :default => ~c"-", :description => ~c"Displayed text when checked" }, %{ :name => ~c"field", :type => ~c"atom", :required => ~c"No", :default => ~c"false", :description => ~c"If not used in Field component, needs to be specified" } ] ) def render(assigns) do ~F""" <:example>
<:code>{switch_2_code()} <:state>{switch_1_state(assigns)}
<:example>
<:code>{switch_3_code()} <:state>{switch_1_state(assigns)}
<:example>
<:code>{switch_4_code()} <:state>{switch_1_state(assigns)}
<:example>
Agrees to Terms of Service
<:code>{switch_5_code()} <:state>{switch_1_state(assigns)}
""" end def mount(_params, _session, socket) do user = %User{} user_changeset = User.changeset(%User{}, %{ agrees_to_terms_of_service: true, agrees_to_marketing_emails: false }) socket = assign(socket, user_changeset: user_changeset, small_switch_checked: false, medium_switch_checked: false, large_switch_checked: false, icons_switch_checked: false, captions_switch_checked: false, user: user ) {:ok, socket} end def handle_params(_params, uri, socket) do {:noreply, assign(socket, uri: uri)} end def handle_event( "register_form_update", %{ "user" => params }, socket ) do user_changeset = User.changeset(socket.assigns.user, params) {:noreply, assign(socket, user_changeset: user_changeset)} end def handle_event("register_form_submit", params, socket) do user_changeset = User.changeset(socket.assigns.user, params["user"]) |> Map.merge(%{action: :insert}) {:noreply, assign(socket, user_changeset: user_changeset)} end def switch_1_state(assigns) do ~F""" @user_changeset = {inspect(@user_changeset, pretty: true)} """ end def switch_2_code do """
""" end def switch_3_code do """
""" end def switch_4_code do """
""" end def switch_5_code do """
Agrees to Terms of Service
""" end end