diff --git a/app/components/admin/stats/event_links_component.html.erb b/app/components/admin/stats/event_links_component.html.erb
new file mode 100644
index 000000000..e63a3624a
--- /dev/null
+++ b/app/components/admin/stats/event_links_component.html.erb
@@ -0,0 +1,6 @@
+<% event_names.each do |event| %>
+
+ <%= link_to link_text(event),
+ graph_admin_stats_path(event: event) %>
+
+<% end %>
diff --git a/app/components/admin/stats/event_links_component.rb b/app/components/admin/stats/event_links_component.rb
new file mode 100644
index 000000000..71d3121b9
--- /dev/null
+++ b/app/components/admin/stats/event_links_component.rb
@@ -0,0 +1,17 @@
+class Admin::Stats::EventLinksComponent < ApplicationComponent
+ attr_reader :event_names
+
+ def initialize(event_names)
+ @event_names = event_names
+ end
+
+ private
+
+ def link_text(event)
+ text = t("admin.stats.graph.#{event}")
+ if text.to_s.match(/translation missing/)
+ text = event
+ end
+ text
+ end
+end
diff --git a/app/helpers/stats_helper.rb b/app/helpers/stats_helper.rb
index acc79319b..711804d5f 100644
--- a/app/helpers/stats_helper.rb
+++ b/app/helpers/stats_helper.rb
@@ -15,14 +15,6 @@ module StatsHelper
data
end
- def graph_link_text(event)
- text = t("admin.stats.graph.#{event}")
- if text.to_s.match(/translation missing/)
- text = event
- end
- text
- end
-
def budget_investments_chart_tag(opt = {})
opt[:data] ||= {}
opt[:data][:graph] = admin_api_stats_path(budget_investments: true)
diff --git a/app/views/admin/stats/show.html.erb b/app/views/admin/stats/show.html.erb
index fadda0c9c..0e8594da9 100644
--- a/app/views/admin/stats/show.html.erb
+++ b/app/views/admin/stats/show.html.erb
@@ -114,12 +114,7 @@
- <% @event_names.each do |event| %>
-
- <%= link_to graph_link_text(event),
- graph_admin_stats_path(event: event) %>
-
- <% end %>
+ <%= render Admin::Stats::EventLinksComponent.new(@event_names) %>
<% if feature?(:budgets) %>
<%= t "admin.stats.show.budgets_title" %>