lib/react/rails/view_helper.rb (11 lines of code) (raw):
module React
module Rails
module ViewHelper
# This class will be used for inserting tags into HTML.
# It should implement:
# - #setup(controller_instance)
# - #teardown(controller_instance)
# - #react_component(name, props, options &block)
# The default is {React::Rails::ComponentMount}
mattr_accessor :helper_implementation_class
# Render a React component into the view
# using the {helper_implementation_class}
#
# If called during a Rails controller-managed request, use the instance
# created by the controller.
#
# Otherwise, make a new instance.
def react_component(*args, &block)
helper_obj = @__react_component_helper ||= helper_implementation_class.new
helper_obj.react_component(*args) { capture &block if block_given? }
end
end
end
end