Sha256: 37f4865b2c15027671f75218287daca6f563c0ca052fc5ac82f39b9413ba9797

Contents?: true

Size: 1.53 KB

Versions: 22

Compression:

Stored size: 1.53 KB

Contents

module Isomorfeus
  class TopLevel
    class << self
      attr_accessor :ssr_route_path
      attr_accessor :transport_ws_url

      def mount!
        # nothing, but keep it for compatibility with browser
      end

      def render_component_to_static_markup(component_name, props)
        component = nil
        %x{
          if (typeof component_name === 'string' || component_name instanceof String) {
            component = component_name.split(".").reduce(function(o, x) {
              return (o !== null && typeof o[x] !== "undefined" && o[x] !== null) ? o[x] : null;
            }, Opal.global)
          } else {
            component = component_name;
          }
        }
        component = Isomorfeus.cached_component_class(component_name) unless component
        ReactDOMServer.render_to_static_markup(React.create_element(component, `Opal.Hash.$new(props)`))
      end

      def render_component_to_string(component_name, props)
        component = nil
        %x{
          if (typeof component_name === 'string' || component_name instanceof String) {
            component = component_name.split(".").reduce(function(o, x) {
              return (o !== null && typeof o[x] !== "undefined" && o[x] !== null) ? o[x] : null;
            }, Opal.global)
          } else {
            component = component_name;
          }
        }
        component = Isomorfeus.cached_component_class(component_name) unless component
        ReactDOMServer.render_to_string(React.create_element(component, `Opal.Hash.$new(props)`))
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
isomorfeus-react-16.13.11 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.10 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.9 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.8 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.7 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.6 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.5 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.4 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.3 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.2 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.1 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.13.0 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.12.24 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.12.23 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.12.22 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.12.21 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.12.20 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.12.19 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.12.18 lib/isomorfeus/top_level_ssr.rb
isomorfeus-react-16.12.17 lib/isomorfeus/top_level_ssr.rb