Sha256: 1d57151a4a85e8d0d451a19f9eac0a12fb18185fff540f88b1da363f5ca54747
Contents?: true
Size: 1.33 KB
Versions: 13
Compression:
Stored size: 1.33 KB
Contents
module React module Rails # A renderer class suitable for `ActionController::Renderers`. # It is associated to `:component` in the Railtie. # # It is prerendered by default with {React::ServerRendering}. # Set options[:prerender] to `false` to disable prerendering. # # @example Rendering a component from a controller # class TodosController < ApplicationController # def index # @todos = Todo.all # render component: 'TodoList', props: { todos: @todos }, tag: 'span', class: 'todo' # end # end class ControllerRenderer include React::Rails::ViewHelper include ActionView::Helpers::TagHelper include ActionView::Helpers::TextHelper attr_accessor :output_buffer def initialize(options={}) controller = options[:controller] @__react_component_helper = controller.__react_component_helper end # @return [String] HTML for `component_name` with `options[:props]` def call(component_name, options, &block) props = options.fetch(:props, {}) options = default_options.merge(options.slice(:data, :aria, :tag, :class, :id, :prerender)) react_component(component_name, props, options, &block) end private def default_options { prerender: true } end end end end
Version data entries
13 entries across 13 versions & 1 rubygems