Class: ShadcnPhlexcomponents::LoadingButton

Inherits:
Base
  • Object
show all
Defined in:
lib/shadcn_phlexcomponents/components/loading_button.rb

Constant Summary

Constants inherited from Base

Base::SANITIZER_ALLOWED_ATTRIBUTES, Base::SANITIZER_ALLOWED_TAGS, Base::TAILWIND_MERGER

Instance Method Summary collapse

Methods inherited from Base

#before_template, #convert_collection_hash_to_struct, #find_as_child, #icon, #item_disabled?, #merge_default_attributes, #merged_as_child_attributes, #nokogiri_attributes_to_hash, #overlay, #sanitize_as_child

Constructor Details

#initialize(variant: :default, size: :default, type: :submit, **attributes) ⇒ LoadingButton

Returns a new instance of LoadingButton.



5
6
7
8
9
10
# File 'lib/shadcn_phlexcomponents/components/loading_button.rb', line 5

def initialize(variant: :default, size: :default, type: :submit, **attributes)
  @variant = variant
  @size = size
  @type = type
  super(**attributes)
end

Instance Method Details

#default_attributesObject



12
13
14
15
16
17
18
19
# File 'lib/shadcn_phlexcomponents/components/loading_button.rb', line 12

def default_attributes
  {
    type: @type,
    data: {
      controller: "loading-button",
    },
  }
end

#view_templateObject



21
22
23
24
25
26
# File 'lib/shadcn_phlexcomponents/components/loading_button.rb', line 21

def view_template(&)
  Button(variant: @variant, size: @size, **@attributes) do
    icon("loader-circle", class: "animate-spin hidden group-aria-busy:inline")
    yield
  end
end