Sha256: 3a22797cd56c66e63bcae8e6b06fb636fc982281e0d070006b8541fa5c49c99c

Contents?: true

Size: 1.1 KB

Versions: 14

Compression:

Stored size: 1.1 KB

Contents

module Isomorfeus
  class PreactSSR
    def initialize(component_name, props, location, locale)
      @component = component_name.is_a?(String) ? self.class.const_get(component_name) : component_name
      @props = props
      @location = location
      @locale = locale
    end

    def render(skip_ssr)
      Isomorfeus.browser_location = Browser::Location.new(@location)
      Isomorfeus.current_locale = @locale if @locale
      Isomorfeus.ssr_response_status = 200
      NanoCSS.instance = NanoCSS.new(given_renderer: NanoCSS.global_instance.renderer.deep_dup)
      Isomorfeus.init_store
      Isomorfeus.store.clear!
      Isomorfeus.store.dispatch(type: 'I18N_MERGE', data: { locale: @locale, domain: Isomorfeus.i18n_domain })
      return '' if skip_ssr
      c = Isomorfeus.current_user
      if c.respond_to?(:reload)
        Thread.current[:isomorfeus_user] = LocalSystem.new
        begin
          c.reload
        ensure
          Thread.current[:isomorfeus_user] = c
        end
      end
      ::Preact.render_to_string(::Preact.create_element(@component, @props))
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
isomorfeus-preact-23.9.0.rc8 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.9.0.rc7 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.9.0.rc6 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.9.0.rc5 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.9.0.rc4 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.9.0.rc3 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.9.0.rc2 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.9.0.rc1 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.8.0.rc3 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.8.0.rc2 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.8.0.rc1 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.7.0.rc5 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.7.0.rc4 lib/isomorfeus/preact/ssr.rb
isomorfeus-preact-23.7.0.rc3 lib/isomorfeus/preact/ssr.rb