defmodule MoonWeb.Examples.Design.FormExample.Registration do @moduledoc false use Moon.StatefulComponent use MoonWeb, :example alias MoonWeb.Schema.User alias Moon.Design.Form alias Moon.Design.Form.Field.Label alias Moon.Design.Form.Select alias Moon.Design.Form.Input alias Moon.Design.Form.TextArea alias Moon.Design.Form.Field alias Moon.Design.Form.Switch alias Moon.Design.Form.Checkbox alias Moon.Design.Button alias MoonWeb.Components.Anatomy prop(user_changeset, :any, default: User.changeset(%User{ gender: "invalid", username: "userName", email: "my@e.mail", agrees_to_terms_of_service: false, agrees_to_marketing_emails: true }) ) prop(gender_options, :list, default: [ [key: "Female", value: "female"], [key: "Male", value: "male"], [key: "Invalid choice", value: "invalid"], [key: "I identify as God and this is not important", value: "god", disabled: true] ] ) def render(assigns) do ~F"""
""" end def handle_event("change", %{"user" => params}, socket) do user_changeset = User.changeset(%User{}, params) {:noreply, assign(socket, user_changeset: user_changeset)} end def handle_event("submit", _, socket) do user_changeset = Map.merge(socket.assigns.user_changeset, %{action: :insert}) {:noreply, assign(socket, user_changeset: user_changeset)} end def code() do """ """ end end