diff --git a/app/components/admin/budget_investments/row_component.html.erb b/app/components/admin/budget_investments/row_component.html.erb
index e7360e9eb..3c191a726 100644
--- a/app/components/admin/budget_investments/row_component.html.erb
+++ b/app/components/admin/budget_investments/row_component.html.erb
@@ -42,16 +42,7 @@
- <% if can?(:admin_update, investment) %>
- <%= form_for [:admin, budget, investment], remote: true, format: :json do |f| %>
- <%= f.check_box :visible_to_valuators,
- label: false,
- class: "js-submit-on-change",
- id: "budget_investment_visible_to_valuators_#{investment.id}" %>
- <% end %>
- <% else %>
- <%= investment.visible_to_valuators? ? t("shared.yes") : t("shared.no") %>
- <% end %>
+ <%= render Admin::BudgetInvestments::ToggleVisibleToValuatorsComponent.new(investment) %>
|
diff --git a/app/components/admin/budget_investments/row_component.rb b/app/components/admin/budget_investments/row_component.rb
index 71a001d9c..c48156735 100644
--- a/app/components/admin/budget_investments/row_component.rb
+++ b/app/components/admin/budget_investments/row_component.rb
@@ -1,6 +1,5 @@
class Admin::BudgetInvestments::RowComponent < ApplicationComponent
attr_reader :investment
- use_helpers :can?
def initialize(investment)
@investment = investment
diff --git a/app/components/admin/budget_investments/toggle_visible_to_valuators_component.html.erb b/app/components/admin/budget_investments/toggle_visible_to_valuators_component.html.erb
new file mode 100644
index 000000000..fda45a374
--- /dev/null
+++ b/app/components/admin/budget_investments/toggle_visible_to_valuators_component.html.erb
@@ -0,0 +1,10 @@
+<% if can?(:admin_update, investment) %>
+ <%= form_for [:admin, budget, investment], remote: true, format: :json do |f| %>
+ <%= f.check_box :visible_to_valuators,
+ label: false,
+ class: "js-submit-on-change",
+ id: "budget_investment_visible_to_valuators_#{investment.id}" %>
+ <% end %>
+<% else %>
+ <%= investment.visible_to_valuators? ? t("shared.yes") : t("shared.no") %>
+<% end %>
diff --git a/app/components/admin/budget_investments/toggle_visible_to_valuators_component.rb b/app/components/admin/budget_investments/toggle_visible_to_valuators_component.rb
new file mode 100644
index 000000000..c1cdb0e31
--- /dev/null
+++ b/app/components/admin/budget_investments/toggle_visible_to_valuators_component.rb
@@ -0,0 +1,14 @@
+class Admin::BudgetInvestments::ToggleVisibleToValuatorsComponent < ApplicationComponent
+ attr_reader :investment
+ use_helpers :can?
+
+ def initialize(investment)
+ @investment = investment
+ end
+
+ private
+
+ def budget
+ investment.budget
+ end
+end
diff --git a/spec/components/admin/budget_investments/row_component_spec.rb b/spec/components/admin/budget_investments/row_component_spec.rb
deleted file mode 100644
index 4f7dfab7c..000000000
--- a/spec/components/admin/budget_investments/row_component_spec.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-require "rails_helper"
-
-describe Admin::BudgetInvestments::RowComponent, :admin do
- it "uses a JSON request to update visible to valuators" do
- render_inline Admin::BudgetInvestments::RowComponent.new(create(:budget_investment))
-
- expect(page).to have_css "form[action$='json'] input[name$='[visible_to_valuators]']"
- end
-end
diff --git a/spec/components/admin/budget_investments/toggle_visible_to_valuators_component_spec.rb b/spec/components/admin/budget_investments/toggle_visible_to_valuators_component_spec.rb
new file mode 100644
index 000000000..6bbe4a6d8
--- /dev/null
+++ b/spec/components/admin/budget_investments/toggle_visible_to_valuators_component_spec.rb
@@ -0,0 +1,9 @@
+require "rails_helper"
+
+describe Admin::BudgetInvestments::ToggleVisibleToValuatorsComponent, :admin do
+ it "uses a JSON request to update visible to valuators" do
+ render_inline Admin::BudgetInvestments::ToggleVisibleToValuatorsComponent.new(create(:budget_investment))
+
+ expect(page).to have_css "form[action$='json'] input[name$='[visible_to_valuators]']"
+ end
+end
|