Module: Hyperloop::Component::Mixin
- Included in:
- ReactiveRecord::WhileLoading
- Defined in:
- lib/reactive_record/active_record/reactive_record/while_loading.rb
Instance Method Summary collapse
- #component_did_mount(*args) ⇒ Object
- #component_did_update(*args) ⇒ Object
- #original_component_did_mount ⇒ Object
- #original_component_did_update ⇒ Object
- #reactive_record_link_set_while_loading_container_class ⇒ Object
- #reactive_record_link_to_enclosing_while_loading_container ⇒ Object
Instance Method Details
#component_did_mount(*args) ⇒ Object
267 268 269 270 271 |
# File 'lib/reactive_record/active_record/reactive_record/while_loading.rb', line 267 def component_did_mount(*args) original_component_did_mount(*args) reactive_record_link_to_enclosing_while_loading_container reactive_record_link_set_while_loading_container_class end |
#component_did_update(*args) ⇒ Object
275 276 277 278 |
# File 'lib/reactive_record/active_record/reactive_record/while_loading.rb', line 275 def component_did_update(*args) original_component_did_update(*args) reactive_record_link_set_while_loading_container_class end |
#original_component_did_mount ⇒ Object
265 |
# File 'lib/reactive_record/active_record/reactive_record/while_loading.rb', line 265 alias_method :original_component_did_mount, :component_did_mount |
#original_component_did_update ⇒ Object
273 |
# File 'lib/reactive_record/active_record/reactive_record/while_loading.rb', line 273 alias_method :original_component_did_update, :component_did_update |
#reactive_record_link_set_while_loading_container_class ⇒ Object
297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 |
# File 'lib/reactive_record/active_record/reactive_record/while_loading.rb', line 297 def reactive_record_link_set_while_loading_container_class node = dom_node loading = (waiting_on_resources ? `true` : `false`) %x{ if (typeof node === "undefined" || node === null) return; var while_loading_container_id = node.getAttribute('data-reactive_record_while_loading_container_id'); if (#{!self.is_a?(ReactiveRecord::WhileLoading)} && while_loading_container_id !== null && while_loading_container_id !== "") { return; } var enc_while_loading_container_id = node.getAttribute('data-reactive_record_enclosing_while_loading_container_id'); if (enc_while_loading_container_id !== null && enc_while_loading_container_id !== "") { var while_loading_container = document.body.querySelector('[data-reactive_record_while_loading_container_id="'+enc_while_loading_container_id+'"]'); if (loading) { node.className = node.className.replace(/reactive_record_is_loaded/g, '').replace(/ /g, ' '); if (node.className.indexOf('reactive_record_is_loading') === -1) { node.className = node.className + ' reactive_record_is_loading'; } if (while_loading_container !== null) { while_loading_container.className = while_loading_container.className.replace(/reactive_record_is_loaded/g, '').replace(/ /g, ' '); if (while_loading_container.className.indexOf('reactive_record_is_loading') === -1) { while_loading_container.className = while_loading_container.className + ' reactive_record_is_loading'; } } } else if (node.className.indexOf('reactive_record_is_loaded') === -1) { if (while_loading_container_id === null || while_loading_container_id === "") { node.className = node.className.replace(/reactive_record_is_loading/g, '').replace(/ /g, ' '); if (node.className.indexOf('reactive_record_is_loaded') === -1) { node.className = node.className + ' reactive_record_is_loaded'; } } if (while_loading_container.className.indexOf('reactive_record_is_loaded') === -1) { var loading_children = while_loading_container.querySelectorAll('[data-reactive_record_enclosing_while_loading_container_id="'+enc_while_loading_container_id+'"].reactive_record_is_loading'); if (loading_children.length === 0) { while_loading_container.className = while_loading_container.className.replace(/reactive_record_is_loading/g, '').replace(/ /g, ' '); if (while_loading_container.className.indexOf('reactive_record_is_loaded') === -1) { while_loading_container.className = while_loading_container.className + ' reactive_record_is_loaded'; } } } } } } end |
#reactive_record_link_to_enclosing_while_loading_container ⇒ Object
280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 |
# File 'lib/reactive_record/active_record/reactive_record/while_loading.rb', line 280 def reactive_record_link_to_enclosing_while_loading_container # Call after any component mounts - attaches the containers loading id to this component # Fyi, the while_loading container is responsible for setting its own link to itself node = dom_node %x{ if (typeof node === "undefined" || node === null) return; var node_wl_attr = node.getAttribute('data-reactive_record_enclosing_while_loading_container_id'); if (node_wl_attr === null || node_wl_attr === "") { var while_loading_container = node.closest('[data-reactive_record_while_loading_container_id]'); if (while_loading_container !== null) { var container_id = while_loading_container.getAttribute('data-reactive_record_while_loading_container_id'); node.setAttribute('data-reactive_record_enclosing_while_loading_container_id', container_id); } } } end |