diff --git a/Gemfile b/Gemfile index 1aa209c..996fcab 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,8 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } gem 'rails', '~> 7.0.2' # Use Puma as the app server gem 'puma', '~> 4.1' +# View components +gem "view_component" # Separate dependency since Rails 7.0 gem 'sprockets-rails' # Allows custom JS build tasks to integrate with the asset pipeline diff --git a/Gemfile.lock b/Gemfile.lock index 1af58be..d3f0d47 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -282,6 +282,9 @@ GEM railties (>= 6.0.0) tzinfo (2.0.4) concurrent-ruby (~> 1.0) + view_component (2.49.0) + activesupport (>= 5.0.0, < 8.0) + method_source (~> 1.0) warden (1.2.9) rack (>= 2.0.9) web-console (4.2.0) @@ -331,6 +334,10 @@ DEPENDENCIES stimulus-rails turbo-rails tzinfo-data + view_component warden web-console (>= 3.3.0) webmock + +BUNDLED WITH + 2.3.7 diff --git a/app/views/components/_header_compact.html.erb b/app/components/header_compact_component.html.erb similarity index 87% rename from app/views/components/_header_compact.html.erb rename to app/components/header_compact_component.html.erb index 19ab7f1..e460a5e 100644 --- a/app/views/components/_header_compact.html.erb +++ b/app/components/header_compact_component.html.erb @@ -1,7 +1,7 @@

- <%= page_title %> + <%= @title %>

diff --git a/app/components/header_compact_component.rb b/app/components/header_compact_component.rb new file mode 100644 index 0000000..99cc981 --- /dev/null +++ b/app/components/header_compact_component.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class HeaderCompactComponent < ViewComponent::Base + def initialize(title:) + @title = title + end +end diff --git a/app/views/components/_header.html.erb b/app/components/header_component.html.erb similarity index 86% rename from app/views/components/_header.html.erb rename to app/components/header_component.html.erb index edd53b3..6597ad4 100644 --- a/app/views/components/_header.html.erb +++ b/app/components/header_component.html.erb @@ -1,7 +1,7 @@

- <%= page_title %> + <%= @title %>

diff --git a/app/components/header_component.rb b/app/components/header_component.rb new file mode 100644 index 0000000..905277f --- /dev/null +++ b/app/components/header_component.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class HeaderComponent < ViewComponent::Base + def initialize(title:) + @title = title + end +end diff --git a/app/views/components/_main_compact.html.erb b/app/components/main_compact_component.html.erb similarity index 88% rename from app/views/components/_main_compact.html.erb rename to app/components/main_compact_component.html.erb index ee6ee2e..d1d2a5f 100644 --- a/app/views/components/_main_compact.html.erb +++ b/app/components/main_compact_component.html.erb @@ -1,5 +1,5 @@
- <%= yield %> + <%= content %>
diff --git a/app/components/main_compact_component.rb b/app/components/main_compact_component.rb new file mode 100644 index 0000000..60df354 --- /dev/null +++ b/app/components/main_compact_component.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +class MainCompactComponent < ViewComponent::Base + +end diff --git a/app/views/components/_main_simple.html.erb b/app/components/main_simple_component.html.erb similarity index 88% rename from app/views/components/_main_simple.html.erb rename to app/components/main_simple_component.html.erb index 168e6c0..3d75a30 100644 --- a/app/views/components/_main_simple.html.erb +++ b/app/components/main_simple_component.html.erb @@ -1,5 +1,5 @@
- <%= yield %> + <%= content %>
diff --git a/app/components/main_simple_component.rb b/app/components/main_simple_component.rb new file mode 100644 index 0000000..105ea0e --- /dev/null +++ b/app/components/main_simple_component.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +class MainSimpleComponent < ViewComponent::Base + +end diff --git a/app/views/admin/dashboard/index.html.erb b/app/views/admin/dashboard/index.html.erb index c00c55a..bb66283 100644 --- a/app/views/admin/dashboard/index.html.erb +++ b/app/views/admin/dashboard/index.html.erb @@ -1,6 +1,6 @@ -<%= render partial: "components/header", locals: { page_title: "Admin Panel" } %> +<%= render HeaderComponent.new(title: "Admin Panel") %> -<%= render layout: "components/main_simple" do %> +<%= render MainSimpleComponent.new do %>

With great power comes great responsibility.

diff --git a/app/views/admin/donations/edit.html.erb b/app/views/admin/donations/edit.html.erb index 2372949..ba590b2 100644 --- a/app/views/admin/donations/edit.html.erb +++ b/app/views/admin/donations/edit.html.erb @@ -1,6 +1,6 @@ -<%= render partial: "components/header", locals: { page_title: "Donations" } %> +<%= render HeaderComponent.new(title: "Donations") %> -<%= render layout: "components/main_simple" do %> +<%= render MainSimpleComponent.new do %>

Editing Donation

<%= render 'form', donation: @donation, url: admin_donation_path(@donation) %> diff --git a/app/views/admin/donations/index.html.erb b/app/views/admin/donations/index.html.erb index 9f26c76..d4f633d 100644 --- a/app/views/admin/donations/index.html.erb +++ b/app/views/admin/donations/index.html.erb @@ -1,6 +1,6 @@ -<%= render partial: "components/header", locals: { page_title: "Donations" } %> +<%= render HeaderComponent.new(title: "Donations") %> -<%= render layout: "components/main_simple" do %> +<%= render MainSimpleComponent.new do %> <% if @donations.any? %> diff --git a/app/views/admin/donations/new.html.erb b/app/views/admin/donations/new.html.erb index 965cdbc..d831813 100644 --- a/app/views/admin/donations/new.html.erb +++ b/app/views/admin/donations/new.html.erb @@ -1,6 +1,6 @@ -<%= render partial: "components/header", locals: { page_title: "Donations" } %> +<%= render HeaderComponent.new(title: "Donations") %> -<%= render layout: "components/main_simple" do %> +<%= render MainSimpleComponent.new do %>

New Donation

<%= render 'form', donation: @donation, url: admin_donations_path %> diff --git a/app/views/admin/donations/show.html.erb b/app/views/admin/donations/show.html.erb index 6cd247a..b5ad426 100644 --- a/app/views/admin/donations/show.html.erb +++ b/app/views/admin/donations/show.html.erb @@ -1,6 +1,6 @@ -<%= render partial: "components/header", locals: { page_title: "Donations" } %> +<%= render HeaderComponent.new(title: "Donations") %> -<%= render layout: "components/main_simple" do %> +<%= render MainSimpleComponent.new do %>

<%= notice %>

diff --git a/app/views/admin/invitations/index.html.erb b/app/views/admin/invitations/index.html.erb index d30c0d0..e0cea28 100644 --- a/app/views/admin/invitations/index.html.erb +++ b/app/views/admin/invitations/index.html.erb @@ -1,6 +1,6 @@ -<%= render partial: "components/header", locals: { page_title: "Invitations" } %> +<%= render HeaderComponent.new(title: "Invitations") %> -<%= render layout: "components/main_simple" do %> +<%= render MainSimpleComponent.new do %>

There are currently <%= @invitations_unused_count %> diff --git a/app/views/admin/ldap_users/index.html.erb b/app/views/admin/ldap_users/index.html.erb index 27d7a96..fa69197 100644 --- a/app/views/admin/ldap_users/index.html.erb +++ b/app/views/admin/ldap_users/index.html.erb @@ -1,6 +1,6 @@ -<%= render partial: "components/header", locals: { page_title: "LDAP Users: #{@ou}" } %> +<%= render HeaderComponent.new(title: "LDAP Users: #{@ou}") %> -<%= render layout: "components/main_simple" do %> +<%= render MainSimpleComponent.new do %>