Corex.FormField (Corex v0.2.0)

View Source

Use invalid?/1 when you need an explicit invalid={...} from visible changeset errors. Prefer auto_invalid on the component for the common case. Explicit invalid wins over auto_invalid.

See the Forms guide.

Summary

Functions

assign_errors(assigns, field)

@spec assign_errors(map(), Phoenix.HTML.FormField.t()) :: map()

assign_form_field(assigns, field)

@spec assign_form_field(map(), Phoenix.HTML.FormField.t()) :: map()

assign_ids(assigns, field)

@spec assign_ids(map(), Phoenix.HTML.FormField.t()) :: map()

assign_list_submit(assigns)

@spec assign_list_submit(map()) :: map()

assign_stable_id(assigns, prefix)

@spec assign_stable_id(map(), String.t()) :: map()

Assigns a stable optional :id for hook hosts.

Derivation order:

  1. Explicit :id when present and non-empty
  2. Prefixed :name when present (e.g. "accordion-country")
  3. Prefixed random id for static usage

Emits a Logger.warning in non-prod when the random fallback is used with server-driven updates (controlled or a server on_* handler), because a regenerated id remounts the LiveView hook on the next patch.

assign_unless_given(assigns, key, value)

@spec assign_unless_given(map(), atom(), term()) :: map()

Fills an assign from the form field only when the caller left it blank.

assign_new/3 cannot serve here: form_control_attrs/1 declares these attrs with default: nil, so the key is always present and assign_new/3 would never run. Blank means nil or "", both of which mean "not given".

dataset_default_boolean(checked)

@spec dataset_default_boolean(boolean() | :indeterminate) :: String.t()

dataset_default_json(list)

@spec dataset_default_json(list()) :: String.t()

dataset_default_paths(paths)

@spec dataset_default_paths(list()) :: String.t()

dataset_default_string(value)

@spec dataset_default_string(String.t() | nil) :: String.t()

default_value_dataset(arg1, value)

@spec default_value_dataset(map(), String.t() | nil) :: String.t() | nil

invalid?(field)

@spec invalid?(Phoenix.HTML.FormField.t()) :: boolean()

Returns true when the field has visible errors.

On phx-change validation (form.action == :validate), errors follow used_input?/1. After a failed save (:insert / :update / …), all field errors are shown.

<.select field={@form[:country]} invalid={Corex.FormField.invalid?(@form[:country])} />

list_submit_name(name)

@spec list_submit_name(String.t() | nil) :: String.t() | nil

put_form_field_attrs(attrs, assigns)

@spec put_form_field_attrs(map(), map() | struct()) :: map()

require_id!(assigns, component_name)

@spec require_id!(map(), String.t()) :: map()