isomorfeus-preact 10.6.20 → 10.6.21
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 +4 -4
- data/lib/isomorfeus_preact/lucid_app/native_component_constructor.rb +3 -7
- data/lib/isomorfeus_preact/lucid_component/native_component_constructor.rb +3 -7
- data/lib/isomorfeus_preact/lucid_func/native_component_constructor.rb +2 -4
- data/lib/isomorfeus_preact/preact/function_component/native_component_constructor.rb +2 -4
- data/lib/preact/component/callbacks.rb +14 -14
- data/lib/preact/component/native_component_constructor.rb +3 -5
- data/lib/preact/version.rb +1 -1
- data/lib/preact.rb +14 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76c5ba07f42c9e53b189fed74f0ac51e7041cd9d243b080295e86492cfc12bd8
|
4
|
+
data.tar.gz: 5ae156acd8f5c22acfdca4642df719459183727df885d141a1b72b37268c4304
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7aecd0b46f5d6901d435444fe02080d2aa114778bf3de8ce1ee42052226bd06a3d91644bfe73456a8bce24f336769e1347a079b38894f63ef16f3186732a98dd
|
7
|
+
data.tar.gz: a3c3ae921ad2bd80cc5fae87857b299ff206c9026300c99a177b96249b5517eb09b1401a56e287b629cfabf4a613dd37cc39b0fffc95afd64beda63f97bda6ce
|
@@ -33,7 +33,7 @@ module LucidApp
|
|
33
33
|
var defined_refs = #{base.defined_refs};
|
34
34
|
for (var ref in defined_refs) {
|
35
35
|
if (defined_refs[ref] != null) {
|
36
|
-
let r = ref; // to ensure
|
36
|
+
let r = ref; // to ensure closure for function below gets correct ref name
|
37
37
|
this[ref] = function(element) {
|
38
38
|
element = oper.native_element_or_component_to_ruby(element);
|
39
39
|
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[r]`)}
|
@@ -57,17 +57,13 @@ module LucidApp
|
|
57
57
|
render(props, state) {
|
58
58
|
const oper = Opal.Preact;
|
59
59
|
oper.render_buffer.push([]);
|
60
|
-
|
61
|
-
oper.active_components.push(this);
|
62
|
-
oper.active_redux_components.push(this);
|
60
|
+
oper.register_active_component(this);
|
63
61
|
let block_result;
|
64
62
|
if (base.while_loading_block && !state.preloaded) { block_result = #{`this.__ruby_instance`.instance_exec(&`base.while_loading_block`)}; }
|
65
63
|
else { block_result = #{`this.__ruby_instance`.instance_exec(&`base.render_block`)}; }
|
66
64
|
if (block_result && block_result !== nil) { oper.render_block_result(block_result); }
|
67
|
-
oper.
|
68
|
-
oper.active_components.pop();
|
65
|
+
oper.unregister_active_component(this);
|
69
66
|
let children = oper.render_buffer.pop();
|
70
|
-
// console.log("lucid app popping", oper.render_buffer, oper.render_buffer.toString());
|
71
67
|
return Opal.global.Preact.createElement(Opal.global.LucidApplicationContext.Provider, { value: { iso_store: this.state.isomorfeus_store_state, iso_theme: base.css_theme }}, children);
|
72
68
|
}
|
73
69
|
data_access() {
|
@@ -29,7 +29,7 @@ module LucidComponent
|
|
29
29
|
var defined_refs = base.$defined_refs();
|
30
30
|
for (var ref in defined_refs) {
|
31
31
|
if (defined_refs[ref] != null) {
|
32
|
-
let r = ref; // to ensure
|
32
|
+
let r = ref; // to ensure closure for function below gets correct ref name
|
33
33
|
this[ref] = function(element) {
|
34
34
|
element = oper.native_element_or_component_to_ruby(element);
|
35
35
|
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[r]`)}
|
@@ -51,16 +51,12 @@ module LucidComponent
|
|
51
51
|
render(props, state) {
|
52
52
|
const oper = Opal.Preact;
|
53
53
|
oper.render_buffer.push([]);
|
54
|
-
|
55
|
-
oper.active_components.push(this);
|
56
|
-
oper.active_redux_components.push(this);
|
54
|
+
oper.register_active_component(this);
|
57
55
|
let block_result;
|
58
56
|
if (base.while_loading_block && !state.preloaded) { block_result = #{`this.__ruby_instance`.instance_exec(&`base.while_loading_block`)}; }
|
59
57
|
else { block_result = #{`this.__ruby_instance`.instance_exec(&`base.render_block`)}; }
|
60
58
|
if (block_result && block_result !== nil) { oper.render_block_result(block_result); }
|
61
|
-
oper.
|
62
|
-
oper.active_components.pop();
|
63
|
-
// console.log("lucid component popping", oper.render_buffer, oper.render_buffer.toString());
|
59
|
+
oper.unregister_active_component(this);
|
64
60
|
let result = oper.render_buffer.pop();
|
65
61
|
return (result.length === 1) ? result[0] : result;
|
66
62
|
}
|
@@ -23,12 +23,10 @@ module LucidFunc
|
|
23
23
|
const [__ruby_state, __ruby_dispatch] = og.PreactHooks.useReducer(base.instance_reducer, null, base.instance_init);
|
24
24
|
const __ruby_instance = __ruby_state.instance;
|
25
25
|
__ruby_instance.props = Object.assign({}, props, context);
|
26
|
-
oper.
|
27
|
-
oper.active_redux_components.push(__ruby_instance);
|
26
|
+
oper.register_active_component(__ruby_instance);
|
28
27
|
let block_result = #{`__ruby_instance`.instance_exec(&`base.render_block`)};
|
29
28
|
if (block_result && block_result !== nil) { oper.render_block_result(block_result); }
|
30
|
-
oper.
|
31
|
-
oper.active_components.pop();
|
29
|
+
oper.unregister_active_component(__ruby_instance);
|
32
30
|
// console.log("function popping", oper.render_buffer, oper.render_buffer.toString());
|
33
31
|
let result = oper.render_buffer.pop();
|
34
32
|
return (result.length === 1) ? result[0] : result;
|
@@ -13,15 +13,13 @@ module Preact
|
|
13
13
|
base.preact_component = function(props) {
|
14
14
|
const oper = Opal.Preact;
|
15
15
|
oper.render_buffer.push([]);
|
16
|
-
// console.log("function pushed", oper.render_buffer, oper.render_buffer.toString());
|
17
16
|
const [__ruby_state, __ruby_dispatch] = Opal.global.PreactHooks.useReducer(base.instance_reducer, null, base.instance_init);
|
18
17
|
const __ruby_instance = __ruby_state.instance;
|
19
18
|
__ruby_instance.props = props;
|
20
|
-
oper.
|
19
|
+
oper.register_active_component(__ruby_instance);
|
21
20
|
let block_result = #{`__ruby_instance`.instance_exec(&`base.render_block`)};
|
22
21
|
if (block_result && block_result !== nil) { oper.render_block_result(block_result); }
|
23
|
-
oper.
|
24
|
-
// console.log("function popping", oper.render_buffer, oper.render_buffer.toString());
|
22
|
+
oper.unregister_active_component(__ruby_instance);
|
25
23
|
let result = oper.render_buffer.pop();
|
26
24
|
return (result.length === 1) ? result[0] : result;
|
27
25
|
}
|
@@ -7,9 +7,9 @@ module Preact
|
|
7
7
|
# TODO convert error
|
8
8
|
%x{
|
9
9
|
var fun = function(error) {
|
10
|
-
Opal.Preact.
|
10
|
+
Opal.Preact.register_active_component(this);
|
11
11
|
#{`this.__ruby_instance`.instance_exec(`error`, &block)};
|
12
|
-
Opal.Preact.
|
12
|
+
Opal.Preact.unregister_active_component(this);
|
13
13
|
}
|
14
14
|
if (self.lucid_preact_component) { self.lucid_preact_component.prototype.componentDidCatch = fun; }
|
15
15
|
else { self.preact_component.prototype.componentDidCatch = fun; }
|
@@ -19,9 +19,9 @@ module Preact
|
|
19
19
|
def component_did_mount(&block)
|
20
20
|
%x{
|
21
21
|
let fun = function() {
|
22
|
-
Opal.Preact.
|
22
|
+
Opal.Preact.register_active_component(this);
|
23
23
|
#{`this.__ruby_instance`.instance_exec(&block)};
|
24
|
-
Opal.Preact.
|
24
|
+
Opal.Preact.unregister_active_component(this);
|
25
25
|
}
|
26
26
|
if (self.lucid_preact_component) {
|
27
27
|
if (self.lucid_preact_component.prototype.componentDidMount) {
|
@@ -40,11 +40,11 @@ module Preact
|
|
40
40
|
def component_did_update(&block)
|
41
41
|
%x{
|
42
42
|
var fun = function(prev_props, prev_state, snapshot) {
|
43
|
-
Opal.Preact.
|
43
|
+
Opal.Preact.register_active_component(this);
|
44
44
|
#{`this.__ruby_instance`.instance_exec(`Opal.Preact.Props.$new({props: prev_props})`,
|
45
45
|
`Opal.Preact.State.$new({state: prev_state})`,
|
46
46
|
`snapshot`, &block)};
|
47
|
-
Opal.Preact.
|
47
|
+
Opal.Preact.unregister_active_component(this);
|
48
48
|
}
|
49
49
|
if (self.lucid_preact_component) { self.lucid_preact_component.prototype.componentDidUpdate = fun; }
|
50
50
|
else { self.preact_component.prototype.componentDidUpdate = fun; }
|
@@ -55,9 +55,9 @@ module Preact
|
|
55
55
|
%x{
|
56
56
|
var fun = function() {
|
57
57
|
if (typeof this.unsubscriber === "function") { this.unsubscriber(); };
|
58
|
-
Opal.Preact.
|
58
|
+
Opal.Preact.register_active_component(this);
|
59
59
|
#{`this.__ruby_instance`.instance_exec(&block)};
|
60
|
-
Opal.Preact.
|
60
|
+
Opal.Preact.unregister_active_component(this);
|
61
61
|
}
|
62
62
|
if (self.lucid_preact_component) { self.lucid_preact_component.prototype.componentWillUnmount = fun; }
|
63
63
|
else { self.preact_component.prototype.componentWillUnmount = fun; }
|
@@ -68,12 +68,12 @@ module Preact
|
|
68
68
|
def get_derived_state_from_props(&block)
|
69
69
|
%x{
|
70
70
|
var fun = function(props, state) {
|
71
|
-
Opal.Preact.
|
71
|
+
Opal.Preact.register_active_component(this);
|
72
72
|
var result = #{`this.__ruby_instance`.instance_exec(`Opal.Preact.Props.$new({props: props})`,
|
73
73
|
`Opal.Preact.State.$new({state: state})`, &block)};
|
74
|
-
Opal.Preact.
|
74
|
+
Opal.Preact.unregister_active_component(this);
|
75
75
|
if (typeof result.$to_n === 'function') { result = result.$to_n() }
|
76
|
-
if (result ===
|
76
|
+
if (result === nil) { return null; }
|
77
77
|
return result;
|
78
78
|
}
|
79
79
|
if (self.lucid_preact_component) { self.lucid_preact_component.prototype.getDerivedStateFromProps = fun; }
|
@@ -84,11 +84,11 @@ module Preact
|
|
84
84
|
def get_snapshot_before_update(&block)
|
85
85
|
%x{
|
86
86
|
var fun = function(prev_props, prev_state) {
|
87
|
-
Opal.Preact.
|
87
|
+
Opal.Preact.register_active_component(this);
|
88
88
|
var result = #{`this.__ruby_instance`.instance_exec(`Opal.Preact.Props.$new({props: prev_props})`,
|
89
89
|
`Opal.Preact.State.$new({state: prev_state})`, &block)};
|
90
|
-
Opal.Preact.
|
91
|
-
if (result ===
|
90
|
+
Opal.Preact.unregister_active_component(this);
|
91
|
+
if (result === nil) { return null; }
|
92
92
|
return result;
|
93
93
|
}
|
94
94
|
if (self.lucid_preact_component) { self.lucid_preact_component.prototype.getSnapshotBeforeUpdate = fun; }
|
@@ -19,7 +19,7 @@ module Preact
|
|
19
19
|
var defined_refs = #{base.defined_refs};
|
20
20
|
for (var ref in defined_refs) {
|
21
21
|
if (defined_refs[ref] != null) {
|
22
|
-
let r = ref; // to ensure
|
22
|
+
let r = ref; // to ensure closure for function below gets correct ref name
|
23
23
|
this[ref] = function(element) {
|
24
24
|
element = Opal.Preact.native_element_or_component_to_ruby(element);
|
25
25
|
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[r]`)}
|
@@ -36,12 +36,10 @@ module Preact
|
|
36
36
|
render(props, state) {
|
37
37
|
const oper = Opal.Preact;
|
38
38
|
oper.render_buffer.push([]);
|
39
|
-
|
40
|
-
oper.active_components.push(this);
|
39
|
+
oper.register_active_component(this);
|
41
40
|
let block_result = #{`this.__ruby_instance`.instance_exec(&`base.render_block`)};
|
42
41
|
if (block_result && block_result !== nil) { oper.render_block_result(block_result); }
|
43
|
-
|
44
|
-
oper.active_components.pop();
|
42
|
+
oper.unregister_active_component(this);
|
45
43
|
let result = oper.render_buffer.pop();
|
46
44
|
return (result.length === 1) ? result[0] : result;
|
47
45
|
}
|
data/lib/preact/version.rb
CHANGED
data/lib/preact.rb
CHANGED
@@ -96,6 +96,20 @@ module Preact
|
|
96
96
|
return self.active_redux_components[length-1];
|
97
97
|
};
|
98
98
|
|
99
|
+
self.register_active_component = function(component) {
|
100
|
+
self.active_components.push(component);
|
101
|
+
if (typeof(component.data_access) === 'function') {
|
102
|
+
self.active_redux_components.push(component);
|
103
|
+
}
|
104
|
+
};
|
105
|
+
|
106
|
+
self.unregister_active_component = function(component) {
|
107
|
+
if (typeof(component.data_access) === 'function') {
|
108
|
+
self.active_redux_components.pop();
|
109
|
+
}
|
110
|
+
self.active_components.pop();
|
111
|
+
};
|
112
|
+
|
99
113
|
function isObject(obj) { return (obj && typeof obj === 'object'); }
|
100
114
|
|
101
115
|
self.merge_deep = function(one, two) {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isomorfeus-preact
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.6.
|
4
|
+
version: 10.6.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|