view_component_reflex 2.3.7 → 2.3.13

Sign up to get free protection for your applications and to get access to all the features.
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