view_component_reflex 2.3.8 → 2.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54cdc12281c11a0b058eefe438c7b672e338997ffca8e5f6220a24c6da88e583
4
- data.tar.gz: f896c75ef8915be19a001fd9a176e44dc4f3124745cc31dc3813427de9326cb5
3
+ metadata.gz: 2b6e88d3f5132ffcc19a942cf831abdc6e6ca80efce2ff119851f9a3d0db1eb4
4
+ data.tar.gz: 687bf75b4531066806def843b8f11c9e6018c16913915dc007a5f077d8359f20
5
5
  SHA512:
6
- metadata.gz: 765f82d92616ae01862554996225495f8d629ede123422d4b3ca28a2cc3f048d0d57a0de79626b7cb737cce89bc037f91b9e8972ae7fa8b5e447fa8f243c3f45
7
- data.tar.gz: 93c25d2aeff681f0742a2eef636918a0a91574f6d8498274e05176b4906e87c8e2a3682effbb691d9bea679896d068725c72b3df4cd9a5f868054ea821b7c4f3
6
+ metadata.gz: 591744149c2029b0fee4edbf4df3fe3197339f7c63bb3d78e5d3e907464e7dfa7f2f768b065822436a2d135fa8a1a7f102caf1b7644a0f9a0c8dd0f2634bdfee
7
+ data.tar.gz: d193b6e638108985fa1aa1b2f7caf124a137497c02ca6a9ec1118923cb06bdce5b60580a5cf92ab2393d65ceb31b9d4f0ea0c09daa747802c048da7e72a69294
@@ -20,12 +20,18 @@ module ViewComponentReflex
20
20
  [primary_selector, *rest].each do |s|
21
21
  html = document.css(s)
22
22
  if html.present?
23
- morph(s, html.to_html)
23
+ cable_ready[channel.stream_name].morph(
24
+ selector: s,
25
+ html: html.inner_html,
26
+ children_only: true,
27
+ permanent_attribute_name: "data-reflex-permanent"
28
+ )
24
29
  end
25
30
  end
26
31
  else
27
32
  refresh_component!
28
33
  end
34
+ cable_ready.broadcast
29
35
  end
30
36
 
31
37
  def refresh_component!
@@ -35,7 +41,12 @@ module ViewComponentReflex
35
41
  end
36
42
  end
37
43
  document = Nokogiri::HTML(controller.render_component_to_string(component))
38
- morph selector, document.css(selector).inner_html
44
+ cable_ready[channel.stream_name].morph(
45
+ selector: selector,
46
+ children_only: true,
47
+ html: document.css(selector).inner_html,
48
+ permanent_attribute_name: "data-reflex-permanent"
49
+ )
39
50
  end
40
51
 
41
52
  def refresh_all!
@@ -57,7 +68,19 @@ module ViewComponentReflex
57
68
  !!name.to_proc
58
69
  end
59
70
 
71
+ # this is copied out of stimulus_reflex/reflex.rb and modified
72
+ def morph(selectors, html = "")
73
+ case selectors
74
+ when :nothing
75
+ @broadcaster = StimulusReflex::NothingBroadcaster.new(self)
76
+ else
77
+ @broadcaster = StimulusReflex::SelectorBroadcaster.new(self) unless broadcaster.selector?
78
+ broadcaster.morphs << [selectors, html]
79
+ end
80
+ end
81
+
60
82
  def method_missing(name, *args)
83
+ morph :nothing
61
84
  super unless respond_to_missing?(name)
62
85
  state.each do |k, v|
63
86
  component.instance_variable_set(k, v)
@@ -1,3 +1,3 @@
1
1
  module ViewComponentReflex
2
- VERSION = '2.3.8'
2
+ VERSION = '2.3.9'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_component_reflex
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.8
4
+ version: 2.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua LeBlanc