diff --git a/app/views/admin/budgets_wizard/phases/toggle_enabled.js.erb b/app/views/admin/budgets_wizard/phases/toggle_enabled.js.erb
index d0688ab25..764515939 100644
--- a/app/views/admin/budgets_wizard/phases/toggle_enabled.js.erb
+++ b/app/views/admin/budgets_wizard/phases/toggle_enabled.js.erb
@@ -1,5 +1,3 @@
-var replacement = $("<%= j render Admin::BudgetPhases::ToggleEnabledComponent.new(@phase) %>");
-var form = $("#<%= dom_id(@phase) %> .toggle-switch");
-
-form.replaceWith(replacement);
-replacement.find("[type='submit']").focus();
+<%= render "admin/shared/toggle_switch",
+ record: @phase,
+ new_content: render(Admin::BudgetPhases::ToggleEnabledComponent.new(@phase)) %>
diff --git a/app/views/admin/legislation/proposals/_proposals.html.erb b/app/views/admin/legislation/proposals/_proposals.html.erb
index c63bdf977..4694b1732 100644
--- a/app/views/admin/legislation/proposals/_proposals.html.erb
+++ b/app/views/admin/legislation/proposals/_proposals.html.erb
@@ -19,7 +19,7 @@
<%= proposal.id %> |
<%= proposal.title %> |
<%= proposal.votes_score %> |
- <%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %> |
+ <%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %> |
<% end %>
diff --git a/app/views/admin/legislation/proposals/toggle_selection.js.erb b/app/views/admin/legislation/proposals/toggle_selection.js.erb
index 8b0507552..258c2901c 100644
--- a/app/views/admin/legislation/proposals/toggle_selection.js.erb
+++ b/app/views/admin/legislation/proposals/toggle_selection.js.erb
@@ -1,3 +1,3 @@
-$("#<%= dom_id(@proposal) %> .select").html(
- "<%= j render(Admin::Proposals::ToggleSelectionComponent.new(@proposal)) %>"
-);
+<%= render "admin/shared/toggle_switch",
+ record: @proposal,
+ new_content: render(Admin::Proposals::ToggleSelectionComponent.new(@proposal)) %>
diff --git a/app/views/admin/proposals/index.html.erb b/app/views/admin/proposals/index.html.erb
index 23f5388f4..27964da5b 100644
--- a/app/views/admin/proposals/index.html.erb
+++ b/app/views/admin/proposals/index.html.erb
@@ -27,7 +27,7 @@
<%= link_to proposal.title, admin_proposal_path(proposal) %> |
<%= proposal.author.username %> |
<%= proposal.milestones.count %> |
- <%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %> |
+ <%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %> |
<% end %>
diff --git a/app/views/admin/proposals/toggle_selection.js.erb b/app/views/admin/proposals/toggle_selection.js.erb
index bb832e071..258c2901c 100644
--- a/app/views/admin/proposals/toggle_selection.js.erb
+++ b/app/views/admin/proposals/toggle_selection.js.erb
@@ -1,3 +1,3 @@
-$("#<%= dom_id(@proposal) %> .js-select").html(
- "<%= j render(Admin::Proposals::ToggleSelectionComponent.new(@proposal)) %>"
-);
+<%= render "admin/shared/toggle_switch",
+ record: @proposal,
+ new_content: render(Admin::Proposals::ToggleSelectionComponent.new(@proposal)) %>
diff --git a/app/views/admin/shared/_toggle_switch.js.erb b/app/views/admin/shared/_toggle_switch.js.erb
new file mode 100644
index 000000000..f8c172155
--- /dev/null
+++ b/app/views/admin/shared/_toggle_switch.js.erb
@@ -0,0 +1,5 @@
+var new_toggle_switch = $("<%= j new_content %>");
+var current_toggle_switch = $("#<%= dom_id(record) %> .toggle-switch");
+
+current_toggle_switch.replaceWith(new_toggle_switch);
+new_toggle_switch.find("[type='submit']").focus();