Files
grecia/app/components/milestones/progress_bars_component.rb
Javi Martín e0fc8bc83f Extract methods in milestones progress bars component
This way they're easier to reuse and customize.
2025-04-02 14:44:01 +02:00

37 lines
974 B
Ruby

class Milestones::ProgressBarsComponent < ApplicationComponent
attr_reader :milestoneable
def initialize(milestoneable)
@milestoneable = milestoneable
end
def render?
primary_progress_bar
end
private
def primary_progress_bar
milestoneable.primary_progress_bar
end
def secondary_progress_bars
milestoneable.secondary_progress_bars
end
def progress_tag_for(progress_bar)
text = number_to_percentage(progress_bar.percentage, precision: 0)
tag.div class: "progress",
role: "progressbar",
"aria-valuenow": progress_bar.percentage,
"aria-valuetext": "#{progress_bar.percentage}%",
"aria-valuemax": ProgressBar::RANGE.max,
"aria-valuemin": "0",
tabindex: "0" do
tag.span(class: "progress-meter", style: "width: #{progress_bar.percentage}%;") +
tag.p(text, class: "progress-meter-text")
end
end
end