MishkaGervaz.Form.Entities.Submit (MishkaGervaz v0.0.1-alpha.2)

Copy Markdown View Source

Submit / cancel button block — the singleton entity that owns the three button sub-entities (create, update, cancel), the ui styling sub-entity, and the position field (:top, :bottom, or :both).

When no submit block is declared on a resource, all three buttons fall back to the domain defaults (see MishkaGervaz.Form.Dsl.DomainDefaults). When a submit block exists but defines no buttons, no buttons render — declaring an empty submit is a deliberate "render nothing" signal. Partial blocks inherit per-button: missing buttons fall back to the domain, present ones override.

Example

submit do
  create label: "Create Post"
  update label: "Save Post"
  cancel label: "Discard"
  position :bottom

  ui do
    submit_class "bg-blue-600 text-white"
    cancel_class "bg-gray-200"
    wrapper_class "flex gap-4"
  end
end

See MishkaGervaz.Form.Dsl.Submit for the DSL entity declaration, MishkaGervaz.Form.Entities.Submit.Button for per-button options, and MishkaGervaz.Form.Entities.Submit.Ui for shared button styling.

Summary

Functions

Transform the submit after DSL compilation.

Types

t()

@type t() :: %MishkaGervaz.Form.Entities.Submit{
  __spark_metadata__: map() | nil,
  cancel: MishkaGervaz.Form.Entities.Submit.Button.t() | nil,
  create: MishkaGervaz.Form.Entities.Submit.Button.t() | nil,
  position: :top | :bottom | :both,
  ui: MishkaGervaz.Form.Entities.Submit.Ui.t() | nil,
  update: MishkaGervaz.Form.Entities.Submit.Button.t() | nil
}

Functions

transform(submit)

Transform the submit after DSL compilation.

Extracts nested entities from list wrappers.