From c08bcd65b0d37bf8e30da5c59af30559913e9e87 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 24 Oct 2022 10:28:02 -0700 Subject: [PATCH 1/7] Guard defining ComponentPreviewController on feature flag **Why**: we avoid loading lookbook gem unless the feature flag is on, so the classes to subclass and the mixins will fail due to load errors **How**: I went with the sneaky trailing if to minimize diff noise --- app/controllers/component_preview_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/component_preview_controller.rb b/app/controllers/component_preview_controller.rb index bf0fc611508..5ee1f9a35d4 100644 --- a/app/controllers/component_preview_controller.rb +++ b/app/controllers/component_preview_controller.rb @@ -6,4 +6,4 @@ class ComponentPreviewController < ViewComponentsController helper_method :enqueue_component_scripts alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags -end +end if IdentityConfig.store.component_previews_enabled From d74de652222c91e713b818a96652ee81df901b03 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 24 Oct 2022 10:38:35 -0700 Subject: [PATCH 2/7] Add changelog [skip changelog] From 7ed4d9d17911fb2bfb1a7deea0804246bd0eb640 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 24 Oct 2022 10:39:53 -0700 Subject: [PATCH 3/7] add explanatory comment --- app/controllers/component_preview_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/component_preview_controller.rb b/app/controllers/component_preview_controller.rb index 5ee1f9a35d4..dec7689b1f5 100644 --- a/app/controllers/component_preview_controller.rb +++ b/app/controllers/component_preview_controller.rb @@ -6,4 +6,4 @@ class ComponentPreviewController < ViewComponentsController helper_method :enqueue_component_scripts alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags -end if IdentityConfig.store.component_previews_enabled +end if IdentityConfig.store.component_previews_enabled # only define the class conditionally \ No newline at end of file From 5603a0ad8c51dbecf2993edebb26fcca6e7313ea Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 24 Oct 2022 10:47:53 -0700 Subject: [PATCH 4/7] Add stub class so Zeitwerk doesn't complain about the file not defining a class --- .../component_preview_controller.rb | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/app/controllers/component_preview_controller.rb b/app/controllers/component_preview_controller.rb index dec7689b1f5..d7bcf55cd7d 100644 --- a/app/controllers/component_preview_controller.rb +++ b/app/controllers/component_preview_controller.rb @@ -1,9 +1,15 @@ -class ComponentPreviewController < ViewComponentsController - include ActionView::Helpers::AssetTagHelper - helper Lookbook::PreviewHelper - include Lookbook::PreviewController - include ScriptHelper +if IdentityConfig.store.component_previews_enabled + # Define a stub class, in cases where this file is eager loaded but the + # dependencies have not been loaded + class ComponentPreviewController < ApplicationController; end +else + class ComponentPreviewController < ViewComponentsController + include ActionView::Helpers::AssetTagHelper + helper Lookbook::PreviewHelper + include Lookbook::PreviewController + include ScriptHelper - helper_method :enqueue_component_scripts - alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags -end if IdentityConfig.store.component_previews_enabled # only define the class conditionally \ No newline at end of file + helper_method :enqueue_component_scripts + alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags + end +end From 5031d8932e8b66ead5a274514861434c8af2fc47 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 24 Oct 2022 10:49:14 -0700 Subject: [PATCH 5/7] Switch around conditions --- app/controllers/component_preview_controller.rb | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/app/controllers/component_preview_controller.rb b/app/controllers/component_preview_controller.rb index d7bcf55cd7d..f593ce15f35 100644 --- a/app/controllers/component_preview_controller.rb +++ b/app/controllers/component_preview_controller.rb @@ -1,15 +1,10 @@ -if IdentityConfig.store.component_previews_enabled - # Define a stub class, in cases where this file is eager loaded but the - # dependencies have not been loaded - class ComponentPreviewController < ApplicationController; end -else - class ComponentPreviewController < ViewComponentsController +class ComponentPreviewController < ViewComponentsController + if IdentityConfig.store.component_previews_enabled include ActionView::Helpers::AssetTagHelper helper Lookbook::PreviewHelper include Lookbook::PreviewController include ScriptHelper - helper_method :enqueue_component_scripts - alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags - end + helper_method :enqueue_component_scripts + alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags end From 430f3c3d0c32a491e835b03f209c2e2f5f382923 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 24 Oct 2022 10:52:00 -0700 Subject: [PATCH 6/7] Update app/controllers/component_preview_controller.rb Co-authored-by: Andrew Duthie --- app/controllers/component_preview_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/component_preview_controller.rb b/app/controllers/component_preview_controller.rb index f593ce15f35..73670449c0b 100644 --- a/app/controllers/component_preview_controller.rb +++ b/app/controllers/component_preview_controller.rb @@ -4,6 +4,7 @@ class ComponentPreviewController < ViewComponentsController helper Lookbook::PreviewHelper include Lookbook::PreviewController include ScriptHelper + end helper_method :enqueue_component_scripts alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags From 1663bded8730ebcf1e1b4201f44f650db5d9180b Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 24 Oct 2022 10:54:46 -0700 Subject: [PATCH 7/7] Make these conditional too --- app/controllers/component_preview_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/component_preview_controller.rb b/app/controllers/component_preview_controller.rb index 73670449c0b..6a67cad070d 100644 --- a/app/controllers/component_preview_controller.rb +++ b/app/controllers/component_preview_controller.rb @@ -4,8 +4,8 @@ class ComponentPreviewController < ViewComponentsController helper Lookbook::PreviewHelper include Lookbook::PreviewController include ScriptHelper - end - helper_method :enqueue_component_scripts - alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags + helper_method :enqueue_component_scripts + alias_method :enqueue_component_scripts, :render_javascript_pack_once_tags + end end