module ReactWebpackRails::ReduxIntegration::ViewHelpers
Public Instance Methods
redux_container(name, options = {})
click to toggle source
# File lib/react_webpack_rails/redux_integration/view_helpers.rb, line 17 def redux_container(name, options = {}) container = Services::ReduxContainer.new('redux-container', name, options) rwr_element('redux-container', container.payload, container.options) do container.result['body'].html_safe end end
redux_router(name, options = {})
click to toggle source
# File lib/react_webpack_rails/redux_integration/view_helpers.rb, line 25 def redux_router(name, options = {}) router = Services::ReduxRouter.new('redux-router', name, options, request.path) result = handle_response_code(router.result, name, request.path) rwr_element('redux-router', router.payload, router.options) do result end end
redux_store(name, raw_props = {}, options = {})
click to toggle source
# File lib/react_webpack_rails/redux_integration/view_helpers.rb, line 7 def redux_store(name, raw_props = {}, options = {}) props = serialize_props(raw_props) if server_side(options.delete(:server_side)) NodeIntegrationRunner.new('redux-store', name: name, props: props).run end rwr_element('redux-store', { name: name, props: props }, options) end
Private Instance Methods
handle_response_code(result, name, path)
click to toggle source
# File lib/react_webpack_rails/redux_integration/view_helpers.rb, line 42 def handle_response_code(result, name, path) case result['code'] when 200 result['body'].html_safe when 302 controller.redirect_to(result['redirectUri']) else raise ActionController::RoutingError.new(routing_error(name, path)) end end
routing_error(name, path)
click to toggle source
# File lib/react_webpack_rails/redux_integration/view_helpers.rb, line 53 def routing_error(name, path) "ReactWebpackRails::ReduxIntegration: No route found in #{name} router for #{path}." end
serialize_props(raw_props)
click to toggle source
# File lib/react_webpack_rails/redux_integration/view_helpers.rb, line 36 def serialize_props(raw_props) props = raw_props.as_json return props unless Rails.application.config.react.camelize_props ReactWebpackRails::Services::CamelizeKeys.call(props) end