diff --git a/app/components/admin/stats/budget_supporting_component.html.erb b/app/components/admin/stats/budget_supporting_component.html.erb index 2d74625d9..c946d73bf 100644 --- a/app/components/admin/stats/budget_supporting_component.html.erb +++ b/app/components/admin/stats/budget_supporting_component.html.erb @@ -30,7 +30,7 @@ -<%= render "admin/stats/graph", name: "user_supported_budgets", event: "", count: user_count %> +<%= render Admin::Stats::ChartComponent.new(name: "user_supported_budgets", event: "", count: user_count) %> diff --git a/app/views/admin/stats/_graph.html.erb b/app/components/admin/stats/chart_component.html.erb similarity index 100% rename from app/views/admin/stats/_graph.html.erb rename to app/components/admin/stats/chart_component.html.erb diff --git a/app/components/admin/stats/chart_component.rb b/app/components/admin/stats/chart_component.rb new file mode 100644 index 000000000..ac94fa4cf --- /dev/null +++ b/app/components/admin/stats/chart_component.rb @@ -0,0 +1,27 @@ +class Admin::Stats::ChartComponent < ApplicationComponent + attr_reader :name, :event, :count + + def initialize(name:, event:, count:) + @name = name + @event = event + @count = count + end + + private + + def chart_tag(opt = {}) + opt[:data] ||= {} + opt[:data][:graph] = admin_api_stats_path(chart_data(opt)) + tag.div(**opt) + end + + def chart_data(opt = {}) + data = nil + if opt[:id].present? + data = { opt[:id] => true } + elsif opt[:event].present? + data = { event: opt[:event] } + end + data + end +end diff --git a/app/helpers/stats_helper.rb b/app/helpers/stats_helper.rb index 711804d5f..30facd211 100644 --- a/app/helpers/stats_helper.rb +++ b/app/helpers/stats_helper.rb @@ -1,20 +1,4 @@ module StatsHelper - def chart_tag(opt = {}) - opt[:data] ||= {} - opt[:data][:graph] = admin_api_stats_path(chart_data(opt)) - tag.div(**opt) - end - - def chart_data(opt = {}) - data = nil - if opt[:id].present? - data = { opt[:id] => true } - elsif opt[:event].present? - data = { event: opt[:event] } - end - data - 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/graph.html.erb b/app/views/admin/stats/graph.html.erb index 04435660c..85c8395de 100644 --- a/app/views/admin/stats/graph.html.erb +++ b/app/views/admin/stats/graph.html.erb @@ -4,4 +4,4 @@ <%= back_link_to admin_stats_path %> -<%= render "graph", name: @name, event: @event, count: @count %> +<%= render Admin::Stats::ChartComponent.new(name: @name, event: @event, count: @count) %>