diff --git a/app/components/sdg/goals/plain_tag_list_component.rb b/app/components/sdg/goals/plain_tag_list_component.rb index 3d9a701e0..a99175dc8 100644 --- a/app/components/sdg/goals/plain_tag_list_component.rb +++ b/app/components/sdg/goals/plain_tag_list_component.rb @@ -13,7 +13,7 @@ class SDG::Goals::PlainTagListComponent < ApplicationComponent def goal_tags goals.order(:code).limit(limit).map do |goal| - render SDG::Goals::IconComponent.new(goal) + render SDG::TagComponent.new(goal) end end diff --git a/app/components/sdg/goals/tag_list_component.rb b/app/components/sdg/goals/tag_list_component.rb index bc23ca456..528102678 100644 --- a/app/components/sdg/goals/tag_list_component.rb +++ b/app/components/sdg/goals/tag_list_component.rb @@ -14,7 +14,7 @@ class SDG::Goals::TagListComponent < ApplicationComponent def goal_links goals.order(:code).limit(limit).map do |goal| [ - render(SDG::Goals::IconComponent.new(goal)), + render(SDG::TagComponent.new(goal)), index_by_goal(goal), title: filter_text(goal) ] diff --git a/app/components/sdg/tag_component.html.erb b/app/components/sdg/tag_component.html.erb new file mode 100644 index 000000000..bfbda2748 --- /dev/null +++ b/app/components/sdg/tag_component.html.erb @@ -0,0 +1 @@ +<%= text -%> diff --git a/app/components/sdg/tag_component.rb b/app/components/sdg/tag_component.rb new file mode 100644 index 000000000..366e5005a --- /dev/null +++ b/app/components/sdg/tag_component.rb @@ -0,0 +1,15 @@ +class SDG::TagComponent < ApplicationComponent + attr_reader :goal_or_target + + def initialize(goal_or_target) + @goal_or_target = goal_or_target + end + + def text + if goal_or_target.is_a?(SDG::Goal) + render SDG::Goals::IconComponent.new(goal_or_target) + else + "#{SDG::Target.model_name.human} #{goal_or_target.code}" + end + end +end diff --git a/app/components/sdg/targets/plain_tag_list_component.rb b/app/components/sdg/targets/plain_tag_list_component.rb index 2e1ba705b..25954544d 100644 --- a/app/components/sdg/targets/plain_tag_list_component.rb +++ b/app/components/sdg/targets/plain_tag_list_component.rb @@ -13,7 +13,7 @@ class SDG::Targets::PlainTagListComponent < ApplicationComponent def target_tags targets.sort[0..(limit.to_i - 1)].map do |target| - tag.span(text(target), data: { code: target.code }) + tag.span(render(SDG::TagComponent.new(target)), data: { code: target.code }) end end @@ -21,10 +21,6 @@ class SDG::Targets::PlainTagListComponent < ApplicationComponent record.sdg_targets end - def text(target) - "#{SDG::Target.model_name.human} #{target.code}" - end - def i18n_namespace "targets" end diff --git a/app/components/sdg/targets/tag_list_component.rb b/app/components/sdg/targets/tag_list_component.rb index 7d340b2aa..6c2ea07fe 100644 --- a/app/components/sdg/targets/tag_list_component.rb +++ b/app/components/sdg/targets/tag_list_component.rb @@ -14,7 +14,7 @@ class SDG::Targets::TagListComponent < ApplicationComponent def target_links targets.sort[0..(limit.to_i - 1)].map do |target| [ - "#{SDG::Target.model_name.human} #{target.code}", + render(SDG::TagComponent.new(target)), index_by_target(target), title: filter_text(target), data: { code: target.code }