view_component_reflex 1.7.1 → 1.7.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e5577d7e345a14f59567739802588506a300b2caa96bba74bd4f12a93752a04
|
4
|
+
data.tar.gz: be4d877d89d50555bde7f1ba929ef4fd5b1e60c72f2e7e921e33e2623574bfa7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60530d55c39126bd6be3d5be688f08cbe4e84e0b16e444334e438d99ec1a6b05a1f08c102407bea04b9c73ca5ace4bbb4ec013529810bc5363c6bd09e4224d70
|
7
|
+
data.tar.gz: ceebff13ff2407be15ad1d3e851f78130a7bec2d00cdd260bd3ed78d32ebfce596f1763d6608b822d628f0ce91b164a53c47ee2296755733ddac01888ae1bf8c
|
@@ -4,53 +4,21 @@ module ViewComponentReflex
|
|
4
4
|
def init_stimulus_reflex
|
5
5
|
klass = self
|
6
6
|
@stimulus_reflex ||= Object.const_set(name + "Reflex", Class.new(StimulusReflex::Reflex) {
|
7
|
-
def refresh!(*selectors)
|
7
|
+
def refresh!(primary_selector = "[data-controller~=\"#{stimulus_controller}\"][data-key=\"#{element.dataset[:key]}\"]", *selectors)
|
8
8
|
save_state
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
# If we're just updating the component itself, we can
|
19
|
-
# directly render it instead of rendering the entire page again
|
20
|
-
if selectors.empty?
|
21
|
-
refresh_component!
|
22
|
-
else
|
23
|
-
@channel.send :render_page_and_broadcast_morph, self, selectors, {
|
24
|
-
"dataset" => element.dataset.to_h,
|
25
|
-
"args" => [],
|
26
|
-
"attrs" => element.attributes.to_h,
|
27
|
-
"selectors" => ["body"],
|
28
|
-
"target" => "#{self.class.name}##{method_name}",
|
29
|
-
"url" => request.url,
|
30
|
-
"permanent_attribute_name" => permanent_attribute_name
|
31
|
-
}
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def refresh_component!
|
36
|
-
# The component can't figure out the key when we render from here
|
37
|
-
# Luckily we already know the key, so we can manually override it
|
38
|
-
component.tap do |k|
|
39
|
-
k.define_singleton_method(:key) do
|
40
|
-
element.dataset[:key]
|
41
|
-
end
|
42
|
-
end
|
43
|
-
html = controller.render_component_to_string(component)
|
44
|
-
document = Nokogiri::HTML(html)
|
45
|
-
morph selector, document.css("#{selector} > *").to_s
|
46
|
-
end
|
47
|
-
|
48
|
-
def selector
|
49
|
-
"[data-controller~=\"#{stimulus_controller}\"][data-key=\"#{element.dataset[:key]}\"]"
|
9
|
+
@channel.send :render_page_and_broadcast_morph, self, [primary_selector, *selectors], {
|
10
|
+
"dataset" => element.dataset.to_h,
|
11
|
+
"args" => [],
|
12
|
+
"attrs" => element.attributes.to_h,
|
13
|
+
"selectors" => ["body"],
|
14
|
+
"target" => "#{self.class.name}##{method_name}",
|
15
|
+
"url" => request.url,
|
16
|
+
"permanent_attribute_name" => "data-reflex-permanent"
|
17
|
+
}
|
50
18
|
end
|
51
19
|
|
52
20
|
def refresh_all!
|
53
|
-
|
21
|
+
refresh!("body")
|
54
22
|
end
|
55
23
|
|
56
24
|
# SR's delegate_call_to_reflex in channel.rb
|
@@ -64,6 +32,11 @@ module ViewComponentReflex
|
|
64
32
|
!!name.to_proc
|
65
33
|
end
|
66
34
|
|
35
|
+
before_reflex do |a|
|
36
|
+
a.send a.method_name
|
37
|
+
throw :abort
|
38
|
+
end
|
39
|
+
|
67
40
|
def method_missing(name, *args)
|
68
41
|
super unless respond_to_missing?(name)
|
69
42
|
state.each do |k, v|
|
@@ -129,10 +102,6 @@ module ViewComponentReflex
|
|
129
102
|
helpers.controller.instance_variable_get(:@stimulus_reflex)
|
130
103
|
end
|
131
104
|
|
132
|
-
def can_render_to_string?
|
133
|
-
omitted_from_state.empty?
|
134
|
-
end
|
135
|
-
|
136
105
|
def component_controller(opts_or_tag = :div, opts = {}, &blk)
|
137
106
|
self.class.init_stimulus_reflex
|
138
107
|
init_key
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: view_component_reflex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.2
|
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-07-
|
11
|
+
date: 2020-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -36,28 +36,28 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
39
|
+
version: '0'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
46
|
+
version: '0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: view_component
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: '0'
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: '0'
|
61
61
|
description: Allow stimulus reflexes in a view component
|
62
62
|
email:
|
63
63
|
- joshleblanc94@gmail.com
|