Skip to content

Commit cb15078

Browse files
authored
Customize overlay hint to disable overlay in ReActionView initializer (#88)
Related #47 Related #81 Related marcoroth/herb#1420
1 parent 6d31b36 commit cb15078

File tree

4 files changed

+33
-9
lines changed

4 files changed

+33
-9
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ ReActionView.configure do |config|
4646
# Enable debug mode
4747
config.debug_mode = Rails.env.development?
4848

49-
# Validation mode (:raise or :overlay) — defaults to :raise in test, :overlay otherwise
49+
# Validation mode (:raise, :overlay, or :none) — defaults to :raise in test, :overlay otherwise
5050
# config.validation_mode = :overlay
5151
end
5252
```

lib/generators/reactionview/install_generator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def create_initializer
2323
# Enable debug mode in development (adds debug attributes to HTML)
2424
config.debug_mode = Rails.env.development?
2525
26-
# Validation mode (:raise or :overlay) — defaults to :raise in test, :overlay otherwise
26+
# Validation mode (:raise, :overlay, or :none) — defaults to :raise in test, :overlay otherwise
2727
# config.validation_mode = :overlay
2828
2929
# Add custom transform visitors to process templates before compilation

lib/reactionview/template/handlers/herb.rb

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,28 @@ def editor_meta_tag
5959
end
6060

6161
def reactionview_dev_tools_markup(template)
62-
return nil unless layout_template?(template) && ::ReActionView.config.debug_mode_enabled?
62+
return nil unless layout_template?(template)
6363
return nil unless local_template?(template)
6464

65-
<<~HTML
66-
<meta name="herb-debug-mode" content="true">
67-
<meta name="herb-project-path" content="#{Rails.root}">
68-
#{editor_meta_tag}
65+
markup = +""
6966

70-
#{ActionController::Base.new.view_context.javascript_include_tag "reactionview-dev-tools.umd.js", defer: true}
71-
HTML
67+
if ::ReActionView.config.debug_mode_enabled?
68+
markup << <<~HTML
69+
<meta name="herb-debug-mode" content="true">
70+
<meta name="herb-project-path" content="#{Rails.root}">
71+
#{editor_meta_tag}
72+
73+
#{ActionController::Base.new.view_context.javascript_include_tag "reactionview-dev-tools.umd.js", defer: true}
74+
HTML
75+
end
76+
77+
if ::ReActionView.config.validation_mode == :overlay
78+
markup << <<~HTML
79+
<template data-herb-dismiss-hint>You can also disable this overlay by setting <code style="color: #ffeb3b; font-family: monospace; font-size: 12pt;">config.validation_mode = :none</code> in <code style="color: #ffeb3b; font-family: monospace; font-size: 12pt;">config/initializers/reactionview.rb</code>.</template>
80+
HTML
81+
end
82+
83+
markup.presence
7284
end
7385
end
7486
end

test/reactionview/config_test.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,18 @@ def config.test?
3535
assert_equal :overlay, config.validation_mode
3636
end
3737

38+
test "explicit :none disables validation" do
39+
config = ReActionView::Config.new
40+
41+
def config.test?
42+
true
43+
end
44+
45+
config.validation_mode = :none
46+
47+
assert_equal :none, config.validation_mode
48+
end
49+
3850
test "explicit :raise overrides non-test environment default" do
3951
config = ReActionView::Config.new
4052

0 commit comments

Comments
 (0)