class ReactOnRails::ReactComponent::RenderOptions

Constants

NO_PROPS

Attributes

options[R]
react_component_name[R]
request_digest[RW]

Public Class Methods

new(react_component_name: required("react_component_name"), options: required("options")) click to toggle source

TODO: remove the required for named params

# File lib/react_on_rails/react_component/render_options.rb, line 15
def initialize(react_component_name: required("react_component_name"), options: required("options"))
  @react_component_name = react_component_name.camelize
  @options = options
end

Public Instance Methods

auto_load_bundle() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 74
def auto_load_bundle
  retrieve_configuration_value_for(:auto_load_bundle)
end
client_props() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 30
def client_props
  props_extension = ReactOnRails.configuration.rendering_props_extension
  if props_extension.present?
    if props_extension.respond_to?(:adjust_props_for_client_side_hydration)
      return props_extension.adjust_props_for_client_side_hydration(react_component_name,
                                                                    props.clone)
    end

    raise ReactOnRails::Error, "ReactOnRails: your rendering_props_extension module is missing the " \
                               "required adjust_props_for_client_side_hydration method & can not be used"
  end
  props
end
dom_id() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 48
def dom_id
  @dom_id ||= options.fetch(:id) do
    if random_dom_id
      generate_unique_dom_id
    else
      base_dom_id
    end
  end
end
force_load() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 94
def force_load
  retrieve_configuration_value_for(:force_load)
end
html_options() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 66
def html_options
  options[:html_options].to_h
end
internal_option(key) click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 102
def internal_option(key)
  options[key]
end
logging_on_server() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 90
def logging_on_server
  retrieve_configuration_value_for(:logging_on_server)
end
prerender() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 70
def prerender
  retrieve_configuration_value_for(:prerender)
end
props() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 26
def props
  options.fetch(:props) { NO_PROPS }
end
raise_on_prerender_error() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 86
def raise_on_prerender_error
  retrieve_configuration_value_for(:raise_on_prerender_error)
end
random_dom_id() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 44
def random_dom_id
  retrieve_configuration_value_for(:random_dom_id)
end
random_dom_id?() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 58
def random_dom_id?
  return false if options[:id]

  return false unless random_dom_id

  true
end
replay_console() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 82
def replay_console
  retrieve_configuration_value_for(:replay_console)
end
set_option(key, value) click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 106
def set_option(key, value)
  options[key] = value
end
throw_js_errors() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 22
def throw_js_errors
  options.fetch(:throw_js_errors, false)
end
to_s() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 98
def to_s
  "{ react_component_name = #{react_component_name}, options = #{options}, request_digest = #{request_digest}"
end
trace() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 78
def trace
  retrieve_configuration_value_for(:trace)
end

Private Instance Methods

base_dom_id() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 114
def base_dom_id
  "#{react_component_name}-react-component"
end
generate_unique_dom_id() click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 118
def generate_unique_dom_id
  "#{base_dom_id}-#{SecureRandom.uuid}"
end
retrieve_configuration_value_for(key) click to toggle source
# File lib/react_on_rails/react_component/render_options.rb, line 122
def retrieve_configuration_value_for(key)
  options.fetch(key) do
    ReactOnRails.configuration.public_send(key)
  end
end