Raxol.UI.Components.Input.Button (Raxol v0.2.0)

View Source

Button component for interactive UI elements.

This component provides a clickable button with customizable appearance and behavior.

Summary

Functions

Handles input events for the button component.

Initializes the button component state.

Creates a new button component with the given options.

Renders the button component based on its current state.

Updates the button component state based on external messages.

Types

t()

@type t() :: %{
  id: String.t(),
  label: String.t(),
  on_click: function() | nil,
  disabled: boolean(),
  focused: boolean(),
  theme: map(),
  width: integer() | nil,
  height: integer() | nil,
  shortcut: String.t() | nil,
  tooltip: String.t() | nil,
  role: :primary | :secondary | :danger | :success | nil
}

Functions

handle_event(button, arg2, context)

Handles input events for the button component.

Parameters

  • button - The button component
  • event - The input event to handle
  • context - The event context

Returns

{:update, updated_button} if the button state changed, {:handled, button} if the event was handled but state didn't change, :passthrough if the event wasn't handled by the button.

init(state)

Initializes the button component state.

new(opts \\ [])

@spec new(keyword()) :: t()

Creates a new button component with the given options.

Options

  • :id - Unique identifier for the button
  • :label - Text to display on the button
  • :on_click - Function to call when the button is clicked
  • :disabled - Whether the button is disabled
  • :focused - Whether the button currently has focus (default: false)
  • :theme - Theme overrides for the button
  • :width - Optional fixed width for the button
  • :height - Optional fixed height for the button
  • :shortcut - Optional keyboard shortcut for the button
  • :tooltip - Optional tooltip text
  • :role - Optional semantic role affecting appearance (:primary, :secondary, :danger, :success)

Returns

A new button component struct.

render(button, context)

Renders the button component based on its current state.

Parameters

  • button - The button component to render
  • context - The rendering context

Returns

A rendered view representation of the button.

update(state, message)

Updates the button component state based on external messages.