Class: UI::SpinnerComponent

Inherits:
ViewComponent::Base
  • Object
show all
Includes:
SpinnerBehavior
Defined in:
app/view_components/ui/spinner_component.rb

Overview

SpinnerComponent - ViewComponent implementation

A loading indicator component using an animated spinner icon. Uses SpinnerBehavior concern for shared styling logic.

Examples:

Basic usage

<%= render UI::SpinnerComponent.new %>

With size

<%= render UI::SpinnerComponent.new(size: "lg") %>

Instance Method Summary collapse

Methods included from SpinnerBehavior

#spinner_classes, #spinner_html_attributes

Constructor Details

#initialize(size: "default", classes: "", **attributes) ⇒ SpinnerComponent

Returns a new instance of SpinnerComponent.

Parameters:

  • size (String) (defaults to: "default")

    Size variant (sm, default, lg, xl)

  • classes (String) (defaults to: "")

    Additional CSS classes to merge

  • attributes (Hash)

    Additional HTML attributes



19
20
21
22
23
# File 'app/view_components/ui/spinner_component.rb', line 19

def initialize(size: "default", classes: "", **attributes)
  @size = size
  @classes = classes
  @attributes = attributes
end

Instance Method Details

#callObject



25
26
27
28
29
# File 'app/view_components/ui/spinner_component.rb', line 25

def call
   :svg, **spinner_html_attributes.merge(@attributes).merge(svg_attributes) do
    tag.path(d: "M21 12a9 9 0 1 1-6.219-8.56")
  end
end