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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79141102f4c45c9264382de0ec926a8f9cce4606be4049d8662db3d713184eff
4
- data.tar.gz: 3a8b5bcc189fcfcf40c31322ff85c48a9ae71e7d9f0833412429abe3886e06f2
3
+ metadata.gz: 76c5ba07f42c9e53b189fed74f0ac51e7041cd9d243b080295e86492cfc12bd8
4
+ data.tar.gz: 5ae156acd8f5c22acfdca4642df719459183727df885d141a1b72b37268c4304
5
5
  SHA512:
6
- metadata.gz: e2e5b8e8f24cb6e73120e6cdeb03e41cac9747e1758d13b3c928c75292b68b6ceec44912537848a72733befe6652f17798cb451920d206b3bd71d320fce07838
7
- data.tar.gz: a179f9b3ed757eabfa1471521858845297df8fe53ac5aba16c9d94c5a7ed058b8fc3b48f42d96b9e2c8fd7506cf99389e649bf901782ce3c21c7a6029cff2e68
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 cloure for function below gets correct ref name
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
- // console.log("lucid app pushed", oper.render_buffer, oper.render_buffer.toString());
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.active_redux_components.pop();
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 cloure for function below gets correct ref name
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
- // console.log("lucid component pushed", oper.render_buffer, oper.render_buffer.toString());
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.active_redux_components.pop();
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.active_components.push(__ruby_instance);
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.active_redux_components.pop();
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.active_components.push(__ruby_instance);
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.active_components.pop();
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.active_redux_components.push(this);
10
+ Opal.Preact.register_active_component(this);
11
11
  #{`this.__ruby_instance`.instance_exec(`error`, &block)};
12
- Opal.Preact.active_redux_components.pop();
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.active_redux_components.push(this);
22
+ Opal.Preact.register_active_component(this);
23
23
  #{`this.__ruby_instance`.instance_exec(&block)};
24
- Opal.Preact.active_redux_components.pop();
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.active_redux_components.push(this);
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.active_redux_components.pop();
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.active_redux_components.push(this);
58
+ Opal.Preact.register_active_component(this);
59
59
  #{`this.__ruby_instance`.instance_exec(&block)};
60
- Opal.Preact.active_redux_components.pop();
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.active_redux_components.push(this);
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.active_redux_components.pop();
74
+ Opal.Preact.unregister_active_component(this);
75
75
  if (typeof result.$to_n === 'function') { result = result.$to_n() }
76
- if (result === Opal.nil) { return null; }
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.active_redux_components.push(this);
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.active_redux_components.pop();
91
- if (result === Opal.nil) { return null; }
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 cloure for function below gets correct ref name
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
- // console.log("preact component pushed", oper.render_buffer, oper.render_buffer.toString());
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
- // console.log("preact component popping", oper.render_buffer, oper.render_buffer.toString());
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
  }
@@ -1,3 +1,3 @@
1
1
  module Preact
2
- VERSION = '10.6.20'
2
+ VERSION = '10.6.21'
3
3
  end
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.20
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-29 00:00:00.000000000 Z
11
+ date: 2022-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby