Move poll header partial to a component

This way it'll be easier to write tests for it when we change
it.
This commit is contained in:
Javi Martín
2024-06-07 21:03:20 +02:00
parent bb574db1ea
commit 5dc98929fc
5 changed files with 22 additions and 14 deletions

View File

@@ -1,33 +1,33 @@
<div class="expanded no-margin-top polls-show-header"> <div class="expanded no-margin-top polls-show-header">
<div class="row"> <div class="row">
<div class="small-12 medium-9 column padding"> <div class="small-12 medium-9 column padding">
<% if @poll.related.nil? %> <% if poll.related.nil? %>
<%= back_link_to polls_path, t("polls.show.back") %> <%= back_link_to polls_path, t("polls.show.back") %>
<% else %> <% else %>
<%= link_to t("polls.poll_header.back_to_proposal"), [@poll.related] %> <%= link_to t("polls.poll_header.back_to_proposal"), [poll.related] %>
<% end %> <% end %>
<h1><%= @poll.name %></h1> <h1><%= poll.name %></h1>
<%= auto_link_already_sanitized_html simple_format(@poll.summary) %> <%= auto_link_already_sanitized_html simple_format(poll.summary) %>
<% if @poll.geozones.any? %> <% if poll.geozones.any? %>
<ul class="margin-top tags"> <ul class="margin-top tags">
<% @poll.geozones.each do |g| %> <% poll.geozones.each do |g| %>
<li><span><%= g.name %></span></li> <li><span><%= g.name %></span></li>
<% end %> <% end %>
</ul> </ul>
<% end %> <% end %>
<%= render SDG::TagListComponent.new(@poll, linkable: false) %> <%= render SDG::TagListComponent.new(poll, linkable: false) %>
</div> </div>
<aside class="small-12 medium-3 column margin-top"> <aside class="small-12 medium-3 column margin-top">
<%= render "shared/social_share", <%= render "shared/social_share",
share_title: t("shared.share"), share_title: t("shared.share"),
title: @poll.name, title: poll.name,
url: poll_url(@poll), url: poll_url(poll),
description: @poll.name, description: poll.name,
mobile: @poll.name %> mobile: poll.name %>
</aside> </aside>
</div> </div>
</div> </div>

View File

@@ -0,0 +1,8 @@
class Polls::PollHeaderComponent < ApplicationComponent
attr_reader :poll
use_helpers :auto_link_already_sanitized_html
def initialize(poll)
@poll = poll
end
end

View File

@@ -1,7 +1,7 @@
<% provide :title, @poll.name %> <% provide :title, @poll.name %>
<div class="polls-results-stats"> <div class="polls-results-stats">
<%= render "poll_header" %> <%= render Polls::PollHeaderComponent.new(@poll) %>
<%= render "poll_subnav" %> <%= render "poll_subnav" %>

View File

@@ -10,7 +10,7 @@
<% end %> <% end %>
<div class="polls-show"> <div class="polls-show">
<%= render "poll_header" %> <%= render Polls::PollHeaderComponent.new(@poll) %>
<%= render "poll_subnav" %> <%= render "poll_subnav" %>

View File

@@ -1,7 +1,7 @@
<% provide :title, @poll.name %> <% provide :title, @poll.name %>
<div class="participation-stats polls-results-stats"> <div class="participation-stats polls-results-stats">
<%= render "poll_header" %> <%= render Polls::PollHeaderComponent.new(@poll) %>
<%= render "poll_subnav" %> <%= render "poll_subnav" %>