view_component_reflex 2.0.2 → 2.1.0
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: 415195dd61211d392433d4e85963a6807871143f255b3264e2f7b4871bb42c42
|
4
|
+
data.tar.gz: 69f6030f02557d4d9886e3cfc00c738c66d748eb7a1a4b8149136ddaef8f8e9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e12ff695c21dc3f6c140c9d7aa7ccc854eeaeacf2a8071dc519f87c4ca1447464c01f8dfc9c200c0ac720dd864a71788fcc80f74072577c4c833743ccea29c79
|
7
|
+
data.tar.gz: ed7a85c244de733490571e7c4b529ce7b8dd295c0f6c1a5d57b15f40460b4a3737f2669bf8f28845d80a06b2ed721de49bc810c7ac9477629ead664635b2f2ee
|
data/README.md
CHANGED
@@ -108,6 +108,20 @@ def collection_key
|
|
108
108
|
end
|
109
109
|
```
|
110
110
|
|
111
|
+
### stimulate(target, data)
|
112
|
+
Stimulate another reflex from within your component. This typically requires the key of the component you're stimulating
|
113
|
+
which can be passed in via parameters.
|
114
|
+
|
115
|
+
```ruby
|
116
|
+
def initialize(parent_key)
|
117
|
+
@parent_key = parent_key
|
118
|
+
end
|
119
|
+
|
120
|
+
def stimulate_other
|
121
|
+
stimulate("OtherComponent#method", { key: @parent_key })
|
122
|
+
end
|
123
|
+
```
|
124
|
+
|
111
125
|
### refresh!(selectors)
|
112
126
|
Refresh a specific element on the page. Using this will implicitly run `prevent_render!`.
|
113
127
|
If you want to render a specific element, as well as the component, a common pattern would be to pass `selector` as one of the parameters
|
@@ -91,7 +91,11 @@ module ViewComponentReflex
|
|
91
91
|
else
|
92
92
|
initial_state = ViewComponentReflex::Engine.state_adapter.state(request, "#{@key}_initial")
|
93
93
|
ViewComponentReflex::Engine.state_adapter.state(request, @key).each do |k, v|
|
94
|
-
|
94
|
+
instance_value = instance_variable_get(k)
|
95
|
+
if permit_parameter?(initial_state[k], instance_value)
|
96
|
+
ViewComponentReflex::Engine.state_adapter.set_state(request, controller, "#{@key}_initial", { k => instance_value })
|
97
|
+
ViewComponentReflex::Engine.state_adapter.set_state(request, controller, @key, { k => instance_value })
|
98
|
+
else
|
95
99
|
instance_variable_set(k, v)
|
96
100
|
end
|
97
101
|
end
|
@@ -96,11 +96,23 @@ module ViewComponentReflex
|
|
96
96
|
component_class.stimulus_controller
|
97
97
|
end
|
98
98
|
|
99
|
+
def stimulate(target, data)
|
100
|
+
dataset = {}
|
101
|
+
data.each do |k, v|
|
102
|
+
dataset["data-#{k}"] = v.to_s
|
103
|
+
end
|
104
|
+
channel.receive({
|
105
|
+
"target" => target,
|
106
|
+
"attrs" => element.attributes.to_h.symbolize_keys,
|
107
|
+
"dataset" => dataset
|
108
|
+
})
|
109
|
+
end
|
110
|
+
|
99
111
|
def component
|
100
112
|
return @component if @component
|
101
113
|
@component = component_class.allocate
|
102
114
|
reflex = self
|
103
|
-
exposed_methods = [:params, :request, :element, :refresh!, :refresh_all!, :stimulus_controller, :session, :prevent_refresh!, :selector]
|
115
|
+
exposed_methods = [:params, :request, :element, :refresh!, :refresh_all!, :stimulus_controller, :session, :prevent_refresh!, :selector, :stimulate]
|
104
116
|
exposed_methods.each do |meth|
|
105
117
|
@component.define_singleton_method(meth) do |*a|
|
106
118
|
reflex.send(meth, *a)
|
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: 2.0
|
4
|
+
version: 2.1.0
|
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-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|