MishkaGervaz.Form.Web.State.Static (MishkaGervaz v0.0.1-alpha.2)

Copy Markdown View Source

Static form configuration that never changes after initialization.

Held on MishkaGervaz.Form.Web.State's :static field as a separate struct so LiveView can skip re-rendering nodes that depend only on it — the reference stays identical across every dynamic update, enabling O(1) equality comparison.

Populated once by MishkaGervaz.Form.Web.State.Default.init/3. See the parent module MishkaGervaz.Form.Web.State for the dynamic counterpart.

Summary

Types

t()

@type t() :: %MishkaGervaz.Form.Web.State.Static{
  access: module(),
  config: map(),
  debounce: integer() | nil,
  features: [atom()],
  fields: [map()],
  footer: map() | nil,
  groups: [map()],
  header: map() | nil,
  hooks: map(),
  id: String.t(),
  layout_columns: 1 | 2 | 3 | 4,
  layout_mode: :standard | :wizard | :tabs,
  layout_navigation: :sequential | :free,
  notices: [map()],
  preloads: [atom()],
  resource: module(),
  source: map() | nil,
  steps: [map()],
  stream_name: atom(),
  submit: map(),
  template: module(),
  theme: map() | nil,
  ui_adapter: module(),
  ui_adapter_opts: keyword(),
  uploads: [map()]
}