View Source Surface.Components.Link.Button (surface v0.11.4)

Generates a button that uses a regular HTML form to submit to the given URL.

Useful to ensure that links that change data are not triggered by search engines and other spidering software.

Provides similar capabilities to Phoenix's built-in button/2 function.

Options label and class can be set directly and will override anything in opts. All other options are forwarded to the underlying <button> tag.

Examples

<Button
  label="user"
  to="/users/1"
  class="is-danger"
  method={:delete}
  opts={data: [confirm: "Really?"]}
/>

<Button
  to="/users/1"
  class="is-link"
>
  <span>user</span>
</Button>

Properties

  • values :keyword, default: [] - List values that will be sent as part of the payload triggered by an event

  • to :any, required: true - The page to link to

  • method :atom, default: :post - The method to use with the button

  • id :string - Id to apply to the button

  • class :css_class - Class or classes to apply to the button

  • label :string - The label for the generated <button> element, if no content (default slot) is provided.

  • opts :keyword, default: [] - Additional attributes to add onto the generated element

Slots

  • default - The content of the generated <button> element. If no content is provided, the value of property label is used instead.

Events

  • capture_click - Triggered when the component captures click
  • click - Triggered when the component receives click
  • window_focus - Triggered when the page receives focus
  • window_blur - Triggered when the page loses focus
  • focus - Triggered when the component receives focus
  • blur - Triggered when the component loses focus
  • window_keyup - Triggered when a key on the keyboard is released (window-level)
  • window_keydown - Triggered when a key on the keyboard is pressed (window-level)
  • keyup - Triggered when a key on the keyboard is released
  • keydown - Triggered when a key on the keyboard is pressed

Summary

Functions

Callback implementation for Surface.Component.render/1.