Packages
corex
0.1.0-beta.4
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
lib/components/hidden_input.ex
defmodule Corex.HiddenInput do
@moduledoc ~S'''
Hidden input component based on [Phoenix Core Components](https://hexdocs.pm/phoenix/components.html#corecomponents).
## Examples
### Basic
```heex
<.hidden_input id="id" name="user[id]" value={@user.id} />
```
### With form field
```heex
<.hidden_input field={@form[:id]} />
```
'''
@doc type: :component
use Phoenix.Component
attr(:id, :string, required: false, doc: "The id of the hidden input")
attr(:name, :string, required: false, doc: "The name attribute for form submission")
attr(:value, :any, default: nil, doc: "The value of the hidden input")
attr(:form, :string, required: false, doc: "The id of the form this input belongs to")
attr(:field, Phoenix.HTML.FormField, doc: "A form field struct from the form, e.g. @form[:id]")
attr(:rest, :global)
def hidden_input(%{field: %Phoenix.HTML.FormField{} = field} = assigns) do
assigns =
assigns
|> assign(field: nil)
|> assign_new(:id, fn -> field.id end)
|> assign_new(:name, fn -> field.name end)
|> assign_new(:value, fn -> field.value end)
|> assign_new(:form, fn -> field.form.id end)
hidden_input(assigns)
end
def hidden_input(assigns) do
assigns =
assigns
|> assign_new(:id, fn -> "hidden-input-#{System.unique_integer([:positive])}" end)
~H"""
<input
type="hidden"
id={@id}
name={@name}
value={Phoenix.HTML.Form.normalize_value("hidden", @value)}
{@rest}
/>
"""
end
end