Skip to content

Commit ec7a6f5

Browse files
committed
Give option to not prerender when rendering from controllers
1 parent 215102e commit ec7a6f5

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

lib/react/rails/controller_renderer.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ module Rails
33
# A renderer class suitable for `ActionController::Renderers`.
44
# It is associated to `:component` in the Railtie.
55
#
6-
# It is prerendered with {React::ServerRendering}.
6+
# It is prerendered by default with {React::ServerRendering}.
7+
# Set options[:prerender] to `false` to disable prerendering.
78
#
89
# @example Rendering a component from a controller
910
# class TodosController < ApplicationController
@@ -24,12 +25,18 @@ def initialize(options={})
2425
@__react_component_helper = controller.__react_component_helper
2526
end
2627

27-
# @return [String] Prerendered HTML for `component_name` with `options[:props]`
28+
# @return [String] HTML for `component_name` with `options[:props]`
2829
def call(component_name, options, &block)
2930
props = options.fetch(:props, {})
30-
options = options.slice(:data, :aria, :tag, :class, :id).merge(prerender: true)
31+
options = default_options.merge(options.slice(:data, :aria, :tag, :class, :id, :prerender))
3132
react_component(component_name, props, options, &block)
3233
end
34+
35+
private
36+
37+
def default_options
38+
{ prerender: true }
39+
end
3340
end
3441
end
3542
end

0 commit comments

Comments
 (0)