From 957a73f837b34f9f621e98f60887bb2663d9e397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 14 Jan 2021 15:19:41 +0100 Subject: [PATCH] Extract banner to a component --- app/components/shared/banner_component.html.erb | 3 +++ app/components/shared/banner_component.rb | 16 ++++++++++++++++ app/helpers/banners_helper.rb | 7 ------- app/views/shared/_banner.html.erb | 5 ++--- 4 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 app/components/shared/banner_component.html.erb create mode 100644 app/components/shared/banner_component.rb diff --git a/app/components/shared/banner_component.html.erb b/app/components/shared/banner_component.html.erb new file mode 100644 index 000000000..cbea18d0e --- /dev/null +++ b/app/components/shared/banner_component.html.erb @@ -0,0 +1,3 @@ + diff --git a/app/components/shared/banner_component.rb b/app/components/shared/banner_component.rb new file mode 100644 index 000000000..fcbb5a727 --- /dev/null +++ b/app/components/shared/banner_component.rb @@ -0,0 +1,16 @@ +class Shared::BannerComponent < ApplicationComponent + attr_reader :banner + + def initialize(banner) + @banner = banner + end + + private + + def link + link_to banner.target_url do + tag.h2(banner.title, style: "color:#{banner.font_color}") + + tag.h3(banner.description, style: "color:#{banner.font_color}") + end + end +end diff --git a/app/helpers/banners_helper.rb b/app/helpers/banners_helper.rb index 42cdb240d..973f353af 100644 --- a/app/helpers/banners_helper.rb +++ b/app/helpers/banners_helper.rb @@ -2,11 +2,4 @@ module BannersHelper def has_banners? @banners.present? && @banners.count > 0 end - - def banner_target_link(banner) - link_to banner.target_url do - tag.h2(banner.title, style: "color:#{banner.font_color}") + - tag.h3(banner.description, style: "color:#{banner.font_color}") - end - end end diff --git a/app/views/shared/_banner.html.erb b/app/views/shared/_banner.html.erb index d426ee3dd..358b6e2f3 100644 --- a/app/views/shared/_banner.html.erb +++ b/app/views/shared/_banner.html.erb @@ -1,6 +1,5 @@ <% if has_banners? || controller.class == Admin::BannersController %> <% banner ||= @banners.sample %> - + + <%= render Shared::BannerComponent.new(banner) %> <% end %>