Class: Railsboot::ProgressComponent
- Inherits:
-
Component
- Object
- Component
- Railsboot::ProgressComponent
- Defined in:
- app/components/railsboot/progress_component.rb
Overview
ViewComponent: renders the progress block.
Instance Method Summary collapse
-
#before_render ⇒ void
protected
Sets ARIA progressbar attributes on the rendered element before render.
-
#initialize(value: 0, min: 0, max: 100, label: "", aria_label: nil, color: DEFAULT_COLOR, **html_attributes) ⇒ ProgressComponent
constructor
A new instance of ProgressComponent.
-
#inner_classes ⇒ String
Computes the CSS classes for the inner progress bar element.
Constructor Details
#initialize(value: 0, min: 0, max: 100, label: "", aria_label: nil, color: DEFAULT_COLOR, **html_attributes) ⇒ ProgressComponent
Returns a new instance of ProgressComponent.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/components/railsboot/progress_component.rb', line 13 def initialize(value: 0, min: 0, max: 100, label: "", aria_label: nil, color: DEFAULT_COLOR, **html_attributes) @value = value @min = min @max = max @label = label @aria_label = aria_label @color = fetch_or_raise(color, COLORS) @html_attributes = html_attributes @html_attributes[:tag] = "div" @html_attributes[:class] = class_names( "progress", html_attributes.delete(:class) ) end |
Instance Method Details
#before_render ⇒ void (protected)
This method returns an undefined value.
Sets ARIA progressbar attributes on the rendered element before render.
42 43 44 45 46 47 48 |
# File 'app/components/railsboot/progress_component.rb', line 42 def before_render @html_attributes["role"] = "progressbar" @html_attributes["aria-valuenow"] = @value @html_attributes["aria-valuemin"] = @min @html_attributes["aria-valuemax"] = @max @html_attributes["aria-label"] = @aria_label if @aria_label.present? end |
#inner_classes ⇒ String
Computes the CSS classes for the inner progress bar element.
31 32 33 34 35 36 |
# File 'app/components/railsboot/progress_component.rb', line 31 def inner_classes class_names( "progress-bar", { "bg-#{@color}" => @color.present? } ) end |