diff --git a/app/controllers/admin/account_merger_controller.rb b/app/controllers/admin/account_merger_controller.rb index 7825e46f6..58f32e750 100644 --- a/app/controllers/admin/account_merger_controller.rb +++ b/app/controllers/admin/account_merger_controller.rb @@ -1,6 +1,4 @@ class Admin::AccountMergerController < InertiaController - layout "inertia" - before_action :require_ultraadmin! def show = render(inertia: "Admin/AccountMerger") diff --git a/app/controllers/admin/base_controller.rb b/app/controllers/admin/base_controller.rb index 867c75923..5b416e08c 100644 --- a/app/controllers/admin/base_controller.rb +++ b/app/controllers/admin/base_controller.rb @@ -1,8 +1,6 @@ class Admin::BaseController < InertiaController ADMIN_NAV_LEVELS = %w[admin superadmin viewer ultraadmin].freeze - layout "inertia" - before_action :authenticate_admin! private diff --git a/app/controllers/admin/leaderboard_shadowbans_controller.rb b/app/controllers/admin/leaderboard_shadowbans_controller.rb index 1b84574d5..1fe888bc5 100644 --- a/app/controllers/admin/leaderboard_shadowbans_controller.rb +++ b/app/controllers/admin/leaderboard_shadowbans_controller.rb @@ -1,6 +1,4 @@ class Admin::LeaderboardShadowbansController < InertiaController - layout "inertia" - before_action :require_shadowban_admin! def index diff --git a/app/controllers/api_keys_controller.rb b/app/controllers/api_keys_controller.rb index 7d8c2c58a..bffe7691e 100644 --- a/app/controllers/api_keys_controller.rb +++ b/app/controllers/api_keys_controller.rb @@ -1,6 +1,4 @@ class ApiKeysController < InertiaController - layout "inertia", only: [ :show ] - before_action :authenticate_user! def show diff --git a/app/controllers/deletion_requests_controller.rb b/app/controllers/deletion_requests_controller.rb index e46b4c966..2620cc421 100644 --- a/app/controllers/deletion_requests_controller.rb +++ b/app/controllers/deletion_requests_controller.rb @@ -1,6 +1,4 @@ class DeletionRequestsController < InertiaController - layout "inertia", only: [ :show ] - before_action :require_login before_action :check_can_request, only: [ :create ] diff --git a/app/controllers/doorkeeper/applications_controller.rb b/app/controllers/doorkeeper/applications_controller.rb index 35d5645fa..50810287d 100644 --- a/app/controllers/doorkeeper/applications_controller.rb +++ b/app/controllers/doorkeeper/applications_controller.rb @@ -2,8 +2,6 @@ module Doorkeeper class ApplicationsController < InertiaController - layout "inertia" - before_action :authenticate_oauth_owner! before_action :set_application, only: %i[show edit update destroy rotate_secret] diff --git a/app/controllers/extensions_controller.rb b/app/controllers/extensions_controller.rb index a17528106..b709e45d1 100644 --- a/app/controllers/extensions_controller.rb +++ b/app/controllers/extensions_controller.rb @@ -1,6 +1,4 @@ class ExtensionsController < InertiaController - layout "inertia" - def index render inertia: "Extensions/Index" end diff --git a/app/controllers/inertia_controller.rb b/app/controllers/inertia_controller.rb index af46c3bca..618f6e000 100644 --- a/app/controllers/inertia_controller.rb +++ b/app/controllers/inertia_controller.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class InertiaController < ApplicationController + layout "inertia" + inertia_share layout: -> { inertia_layout_props } private diff --git a/app/controllers/leaderboards_controller.rb b/app/controllers/leaderboards_controller.rb index 0432e756d..7d9284846 100644 --- a/app/controllers/leaderboards_controller.rb +++ b/app/controllers/leaderboards_controller.rb @@ -1,6 +1,4 @@ class LeaderboardsController < InertiaController - layout "inertia" - def index period_type = validated_period_type country = load_country_context diff --git a/app/controllers/my/project_repo_mappings_controller.rb b/app/controllers/my/project_repo_mappings_controller.rb index 43e16645d..7ccc226d8 100644 --- a/app/controllers/my/project_repo_mappings_controller.rb +++ b/app/controllers/my/project_repo_mappings_controller.rb @@ -1,6 +1,4 @@ class My::ProjectRepoMappingsController < InertiaController - layout "inertia", only: [ :index, :show ] - before_action :ensure_current_user before_action :require_github_oauth, only: [ :update ] before_action :set_project_repo_mapping_for_edit, only: [ :update ] diff --git a/app/controllers/profiles_controller.rb b/app/controllers/profiles_controller.rb index 336483656..d008b7556 100644 --- a/app/controllers/profiles_controller.rb +++ b/app/controllers/profiles_controller.rb @@ -1,6 +1,4 @@ class ProfilesController < InertiaController - layout "inertia" - before_action :find_user SOCIAL_LINKS = [ diff --git a/app/controllers/settings/base_controller.rb b/app/controllers/settings/base_controller.rb index 0a30ba931..30a92ef51 100644 --- a/app/controllers/settings/base_controller.rb +++ b/app/controllers/settings/base_controller.rb @@ -1,6 +1,4 @@ class Settings::BaseController < InertiaController - layout "inertia" - before_action :set_user def show = render_settings_page diff --git a/app/controllers/static_pages_controller.rb b/app/controllers/static_pages_controller.rb index ef5398ef2..fd5e5583e 100644 --- a/app/controllers/static_pages_controller.rb +++ b/app/controllers/static_pages_controller.rb @@ -1,8 +1,6 @@ class StaticPagesController < InertiaController include DashboardData - layout "inertia", only: %i[index wakatime_alternative] - def index if current_user flavor_texts = FlavorText.motto + FlavorText.conditional_mottos(current_user) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index e14ef662a..5754eeb8c 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,8 +1,6 @@ class UsersController < InertiaController SETUP_THEME = "rose_pine_dawn".freeze - layout "inertia", only: %i[setup] - before_action :ensure_current_user_for_setup, only: %i[setup] before_action :set_setup_meta, only: %i[setup] before_action :require_admin, only: [ :update_trust_level ] diff --git a/test/controllers/inertia_controller_test.rb b/test/controllers/inertia_controller_test.rb new file mode 100644 index 000000000..35ccd6224 --- /dev/null +++ b/test/controllers/inertia_controller_test.rb @@ -0,0 +1,28 @@ +require "test_helper" + +class InertiaControllerTest < ActionDispatch::IntegrationTest + test "pure descendants inherit the Inertia layout" do + get extensions_path + + assert_response :success + assert_inertia_component "Extensions/Index" + assert_select "html[data-theme]" + assert_select "[data-page]" + end + + test "mixed descendants apply the layout only to Inertia responses" do + get signin_path + + assert_response :success + assert_inertia_component "Auth/SignIn" + assert_select "html[data-theme]" + assert_select "[data-page]" + + get currently_hacking_count_static_pages_path + + assert_response :success + assert_equal "application/json", response.media_type + assert response.parsed_body.key?("count") + assert_not response.body.start_with?("") + end +end