module LucidComponent::Api
Public Class Methods
included(base)
click to toggle source
# File lib/isomorfeus_preact/lucid_component/api.rb, line 3 def self.included(base) base.instance_exec do # store attr_accessor :app_store attr_accessor :class_store attr_accessor :store def class_store @class_store ||= ::LucidComponent::ClassStoreProxy.new(self.to_s) end # preloading def preload(&block) `base.preload_block = block` component_did_mount do unless self.state.preloaded @_preload_promise.then { self.state.preloaded = true }.fail do |result| err_text = "#{self.class.name}: preloading failed, last result: #{result.nil? ? 'nil' : result}!" `console.error(err_text)` end end end end def while_loading(option = nil, &block) wl_block = proc do if @_preload_promise.resolved? instance_exec(&`base.render_block`) else instance_exec(&block) end end `base.while_loading_block = wl_block` end end # stores def local_store LocalStore end def session_store SessionStore end def theme props.theme end # preloading def execute_preload_block @_preload_promise = instance_exec(&self.class.JS[:preload_block]) @_preload_promise.resolved? end def preloaded? !!state.preloaded end # requires transport def current_user Isomorfeus.current_user end end
Public Instance Methods
class_store()
click to toggle source
# File lib/isomorfeus_preact/lucid_component/api.rb, line 10 def class_store @class_store ||= ::LucidComponent::ClassStoreProxy.new(self.to_s) end
current_user()
click to toggle source
requires transport
# File lib/isomorfeus_preact/lucid_component/api.rb, line 63 def current_user Isomorfeus.current_user end
execute_preload_block()
click to toggle source
preloading
# File lib/isomorfeus_preact/lucid_component/api.rb, line 53 def execute_preload_block @_preload_promise = instance_exec(&self.class.JS[:preload_block]) @_preload_promise.resolved? end
local_store()
click to toggle source
stores
# File lib/isomorfeus_preact/lucid_component/api.rb, line 40 def local_store LocalStore end
preload(&block)
click to toggle source
preloading
# File lib/isomorfeus_preact/lucid_component/api.rb, line 15 def preload(&block) `base.preload_block = block` component_did_mount do unless self.state.preloaded @_preload_promise.then { self.state.preloaded = true }.fail do |result| err_text = "#{self.class.name}: preloading failed, last result: #{result.nil? ? 'nil' : result}!" `console.error(err_text)` end end end end
preloaded?()
click to toggle source
# File lib/isomorfeus_preact/lucid_component/api.rb, line 58 def preloaded? !!state.preloaded end
session_store()
click to toggle source
# File lib/isomorfeus_preact/lucid_component/api.rb, line 44 def session_store SessionStore end
theme()
click to toggle source
# File lib/isomorfeus_preact/lucid_component/api.rb, line 48 def theme props.theme end
while_loading(option = nil, &block)
click to toggle source
# File lib/isomorfeus_preact/lucid_component/api.rb, line 27 def while_loading(option = nil, &block) wl_block = proc do if @_preload_promise.resolved? instance_exec(&`base.render_block`) else instance_exec(&block) end end `base.while_loading_block = wl_block` end