class ReactiveRecord::WhileLoading
To notify React
that something is loading use React::WhileLoading.loading! once everything is loaded then do React::WhileLoading.loaded_at message (typically a time stamp just for debug purposes)
Public Class Methods
add_style_sheet()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 147 def add_style_sheet @style_sheet ||= %x{ $('<style type="text/css">'+ ' .reactive_record_is_loading > .reactive_record_show_when_loaded { display: none; }'+ ' .reactive_record_is_loaded > .reactive_record_show_while_loading { display: none; }'+ '</style>').appendTo("head") } end
get_next_while_loading_counter()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 86 def self.get_next_while_loading_counter @while_loading_counter += 1 end
has_observers?()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 94 def self.has_observers? React::State.has_observers?(self, :loaded_at) end
loaded_at(loaded_at)
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 128 def loaded_at(loaded_at) React::State.set_state(self, :loaded_at, loaded_at) @is_loading = false end
loading!()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 121 def loading! React::RenderingContext.waiting_on_resources = true React::State.get_state(self, :loaded_at) React::State.set_state(self, :quiet, false) @is_loading = true end
loading?()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 117 def loading? @is_loading end
page_loaded?()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 137 def page_loaded? React::State.get_state(self, :page_loaded) end
preload_css(css)
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 90 def self.preload_css(css) @css_to_preload += "#{css}\n" end
quiet!()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 141 def quiet! React::State.set_state(self, :quiet, true) after(1) { React::State.set_state(self, :page_loaded, true) } unless on_opal_server? or @page_loaded @page_loaded = true end
quiet?()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 133 def quiet? React::State.get_state(self, :quiet) end
Public Instance Methods
render()
click to toggle source
# File lib/reactive_record/active_record/reactive_record/while_loading.rb, line 181 def render props = params.element_props.dup classes = [props[:class], props[:className], "reactive_record_while_loading_container_#{@uniq_id}"].compact.join(" ") props.merge!({ "data-reactive_record_while_loading_container_id" => @uniq_id, "data-reactive_record_enclosing_while_loading_container_id" => @uniq_id, class: classes }) React.create_element(params.element_type[0], props) do params.loaded_children + params.loading_children end.tap { |e| e.waiting_on_resources = params.loading } end