diff --git a/app/components/admin/budgets/index_component.html.erb b/app/components/admin/budgets/index_component.html.erb
new file mode 100644
index 000000000..e5cb8b340
--- /dev/null
+++ b/app/components/admin/budgets/index_component.html.erb
@@ -0,0 +1,46 @@
+<%= header do %>
+ <%= link_to t("admin.budgets.index.new_link"), new_admin_budget_path %>
+<% end %>
+
+<%= render Admin::Budgets::HelpComponent.new("budgets") %>
+<%= render "shared/filter_subnav", i18n_namespace: "admin.budgets.index" %>
+
+<% if budgets.any? %>
+
<%= page_entries_info budgets %>
+
+
+
+
+ | <%= t("admin.budgets.index.table_name") %> |
+ <%= t("admin.budgets.index.table_phase") %> |
+ <%= t("admin.actions.actions") %> |
+
+
+
+ <% budgets.each do |budget| %>
+
+ | ">
+ <% if budget.finished? %>
+
+ <%= t("admin.budgets.index.table_completed") %>
+
+ <% end %>
+ <%= budget.name %>
+ |
+
+ <%= budget.current_phase.name %>
+ |
+
+ <%= render Admin::Budgets::TableActionsComponent.new(budget) %>
+ |
+
+ <% end %>
+
+
+
+ <%= paginate budgets %>
+<% else %>
+
+ <%= t("admin.budgets.index.no_budgets") %>
+
+<% end %>
diff --git a/app/components/admin/budgets/index_component.rb b/app/components/admin/budgets/index_component.rb
new file mode 100644
index 000000000..6c653cc18
--- /dev/null
+++ b/app/components/admin/budgets/index_component.rb
@@ -0,0 +1,12 @@
+class Admin::Budgets::IndexComponent < ApplicationComponent
+ include Header
+ attr_reader :budgets
+
+ def initialize(budgets)
+ @budgets = budgets
+ end
+
+ def title
+ t("admin.budgets.index.title")
+ end
+end
diff --git a/app/views/admin/budgets/index.html.erb b/app/views/admin/budgets/index.html.erb
index 79da7b03a..37943d5be 100644
--- a/app/views/admin/budgets/index.html.erb
+++ b/app/views/admin/budgets/index.html.erb
@@ -1,47 +1 @@
-
- <%= t("admin.budgets.index.title") %>
- <%= link_to t("admin.budgets.index.new_link"), new_admin_budget_path %>
-
-
-<%= render Admin::Budgets::HelpComponent.new("budgets") %>
-<%= render "shared/filter_subnav", i18n_namespace: "admin.budgets.index" %>
-
-<% if @budgets.any? %>
- <%= page_entries_info @budgets %>
-
-
-
-
- | <%= t("admin.budgets.index.table_name") %> |
- <%= t("admin.budgets.index.table_phase") %> |
- <%= t("admin.actions.actions") %> |
-
-
-
- <% @budgets.each do |budget| %>
-
- | ">
- <% if budget.finished? %>
-
- <%= t("admin.budgets.index.table_completed") %>
-
- <% end %>
- <%= budget.name %>
- |
-
- <%= budget.current_phase.name %>
- |
-
- <%= render Admin::Budgets::TableActionsComponent.new(budget) %>
- |
-
- <% end %>
-
-
-
- <%= paginate @budgets %>
-<% else %>
-
- <%= t("admin.budgets.index.no_budgets") %>
-
-<% end %>
+<%= render Admin::Budgets::IndexComponent.new(@budgets) %>