Extract component to render heading executions

Note we're adding the `budgets-executions-heading` HTML class, which is
consistent to what we do in other components.
This commit is contained in:
Javi Martín
2024-03-10 19:29:44 +01:00
parent e3a2a42534
commit 1e063e88c2
3 changed files with 35 additions and 24 deletions

View File

@@ -0,0 +1,26 @@
<div class="budgets-executions-heading">
<h4 id="<%= heading.name.parameterize %>">
<%= heading.name %> (<%= investments.count %>)
</h4>
<div class="row" data-equalizer-on="medium" data-equalizer>
<% investments.each do |investment| %>
<div class="small-12 medium-6 large-4 column end margin-bottom">
<div class="budget-execution" data-equalizer-watch>
<%= render Budgets::Executions::ImageComponent.new(investment) %>
<div class="budget-execution-info">
<div class="budget-execution-content">
<h5>
<%= link_to investment.title,
polymorphic_path(investment, anchor: "tab-milestones") %>
</h5>
<span class="author"><%= investment.author.name %></span>
</div>
<p class="price margin-top text-center">
<strong><%= investment.formatted_price %></strong>
</p>
</div>
</div>
</div>
<% end %>
</div>
</div>

View File

@@ -0,0 +1,8 @@
class Budgets::Executions::HeadingComponent < ApplicationComponent
attr_reader :heading, :investments
def initialize(heading, investments)
@heading = heading
@investments = investments
end
end

View File

@@ -1,26 +1,3 @@
<% investments_by_heading.each do |heading, investments| %> <% investments_by_heading.each do |heading, investments| %>
<h4 id="<%= heading.name.parameterize %>"> <%= render Budgets::Executions::HeadingComponent.new(heading, investments) %>
<%= heading.name %> (<%= investments.count %>)
</h4>
<div class="row" data-equalizer-on="medium" data-equalizer>
<% investments.each do |investment| %>
<div class="small-12 medium-6 large-4 column end margin-bottom">
<div class="budget-execution" data-equalizer-watch>
<%= render Budgets::Executions::ImageComponent.new(investment) %>
<div class="budget-execution-info">
<div class="budget-execution-content">
<h5>
<%= link_to investment.title,
polymorphic_path(investment, anchor: "tab-milestones") %>
</h5>
<span class="author"><%= investment.author.name %></span>
</div>
<p class="price margin-top text-center">
<strong><%= investment.formatted_price %></strong>
</p>
</div>
</div>
</div>
<% end %>
</div>
<% end %> <% end %>