Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ ReActionView.configure do |config|
# Enable debug mode
config.debug_mode = Rails.env.development?

# Validation mode (:raise or :overlay) — defaults to :raise in test, :overlay otherwise
# Validation mode (:raise, :overlay, or :none) — defaults to :raise in test, :overlay otherwise
# config.validation_mode = :overlay
end
```
Expand Down
2 changes: 1 addition & 1 deletion lib/generators/reactionview/install_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def create_initializer
# Enable debug mode in development (adds debug attributes to HTML)
config.debug_mode = Rails.env.development?

# Validation mode (:raise or :overlay) — defaults to :raise in test, :overlay otherwise
# Validation mode (:raise, :overlay, or :none) — defaults to :raise in test, :overlay otherwise
# config.validation_mode = :overlay

# Add custom transform visitors to process templates before compilation
Expand Down
26 changes: 19 additions & 7 deletions lib/reactionview/template/handlers/herb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,28 @@ def editor_meta_tag
end

def reactionview_dev_tools_markup(template)
return nil unless layout_template?(template) && ::ReActionView.config.debug_mode_enabled?
return nil unless layout_template?(template)
return nil unless local_template?(template)

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

#{ActionController::Base.new.view_context.javascript_include_tag "reactionview-dev-tools.umd.js", defer: true}
HTML
if ::ReActionView.config.debug_mode_enabled?
markup << <<~HTML
<meta name="herb-debug-mode" content="true">
<meta name="herb-project-path" content="#{Rails.root}">
#{editor_meta_tag}

#{ActionController::Base.new.view_context.javascript_include_tag "reactionview-dev-tools.umd.js", defer: true}
HTML
end

if ::ReActionView.config.validation_mode == :overlay
markup << <<~HTML
<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>
HTML
end

markup.presence
end
end
end
Expand Down
12 changes: 12 additions & 0 deletions test/reactionview/config_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,18 @@ def config.test?
assert_equal :overlay, config.validation_mode
end

test "explicit :none disables validation" do
config = ReActionView::Config.new

def config.test?
true
end

config.validation_mode = :none

assert_equal :none, config.validation_mode
end

test "explicit :raise overrides non-test environment default" do
config = ReActionView::Config.new

Expand Down
Loading