view_component_reflex 2.3.7 → 2.3.13

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: 928f47f83cfe7da7261495c367ebd3690db92cddeb4c09ae0fa1e84f88f03cf4
4
- data.tar.gz: 043a0dc613483eb6d072868fb1a83e00e7d10e1035d3de549e6a6a57f8d420f6
3
+ metadata.gz: 4d37a33f261bcbac7f2bf33dcc95b61caf0e2f721cf516ebe72ade66fbc1807b
4
+ data.tar.gz: dbd4a6323274b98414adfe3bab8495627ff498cdd996fd3e6821619d016e75e4
5
5
  SHA512:
6
- metadata.gz: 64834d62cc4b729be28f292297d4b73a2eac0654cf8ed99a8fdd28f84935825be14cf1d5722548c01c451d9079ed9ca96f6f05f3aef9907e9b53c1092e403895
7
- data.tar.gz: 6e684ca6d8a49cb30267263b96830dc60af39c3db047fbdc0e2a0231dd6b321f7cb7b0eb80703336f3311b60e6088c2f28ef5cde12903d54850d3dc042a695fb
6
+ metadata.gz: 9d296523ef6010e8e0e1f678bf49be01557e8794bf1c24c64c32f1e6cbcd1a21f831ed27677e7511f68836030e5b91f15da687c8b8d13ff66a9be600858d006d
7
+ data.tar.gz: 4366608cb15b0cf01cfce34f1d5c7932430da9f8f01b645f47df4f493fc96d9a7c3357e075118dce69c94b19111bb85b72b56f3dfa336d13c5e0eaf05d506fe9
@@ -139,6 +139,10 @@ module ViewComponentReflex
139
139
  []
140
140
  end
141
141
 
142
+ # def receive_params(old_state, params)
143
+ # # no op
144
+ # end
145
+
142
146
  def key
143
147
  # initialize session state
144
148
  if !stimulus_reflex? || ViewComponentReflex::Engine.state_adapter.state(request, @key).empty?
@@ -147,8 +151,12 @@ module ViewComponentReflex
147
151
 
148
152
  ViewComponentReflex::Engine.state_adapter.store_state(request, @key, new_state)
149
153
  ViewComponentReflex::Engine.state_adapter.store_state(request, "#{@key}_initial", new_state)
150
- else
154
+ elsif !@initialized_state
151
155
  initial_state = ViewComponentReflex::Engine.state_adapter.state(request, "#{@key}_initial")
156
+
157
+ # incoming_params = safe_instance_variables.each_with_object({}) { |var, obj| obj[var] = instance_variable_get(var) }
158
+ # receive_params(ViewComponentReflex::Engine.state_adapter.state(request, @key), incoming_params)
159
+
152
160
  ViewComponentReflex::Engine.state_adapter.state(request, @key).each do |k, v|
153
161
  instance_value = instance_variable_get(k)
154
162
  if permit_parameter?(initial_state[k], instance_value)
@@ -158,6 +166,7 @@ module ViewComponentReflex
158
166
  instance_variable_set(k, v)
159
167
  end
160
168
  end
169
+ @initialized_state = true
161
170
  end
162
171
  @key
163
172
  end
@@ -172,7 +181,7 @@ module ViewComponentReflex
172
181
  [
173
182
  :@view_context, :@lookup_context, :@view_renderer, :@view_flow,
174
183
  :@virtual_path, :@variant, :@current_template, :@output_buffer, :@key,
175
- :@helpers, :@controller, :@request, :@tag_builder
184
+ :@helpers, :@controller, :@request, :@tag_builder, :@initialized_state
176
185
  ]
177
186
  end
178
187
 
@@ -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.inner_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.7'
2
+ VERSION = '2.3.13'
3
3
  end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_component_reflex
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.7
4
+ version: 2.3.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua LeBlanc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-02 00:00:00.000000000 Z
11
+ date: 2020-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 6.0.3
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
- version: 6.0.3.1
19
+ version: '5.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: 6.0.3
30
27
  - - ">="
31
28
  - !ruby/object:Gem::Version
32
- version: 6.0.3.1
29
+ version: '5.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: stimulus_reflex
35
35
  requirement: !ruby/object:Gem::Requirement