isomorfeus-preact 10.6.56 → 10.6.59

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: b1c2fb916224b97957f33bf1aa165deb9ea0a93ec5b86d7f7bf180463d9a9f28
4
- data.tar.gz: f671cf14a06f9c0a33d43a57b3af4a361c414862e88d050b0d5a289489cbb48b
3
+ metadata.gz: e3a34f115d44cbec71d91a6b40c3fe09efd730eca2bcf994feb261031e9f7301
4
+ data.tar.gz: 8e5f574ce11ac9be20e7484e04f483456ae47a56c5f45e73616e1a34395199ad
5
5
  SHA512:
6
- metadata.gz: 9880247b4c0081e7ba9fd24ee7b8f2159e336b2547aae3358bb4613b6e8e01e52bb4a25958573d04eff0e6fcbfc1a7ef1a1d4dd56c2e768c041eea54bc4d8158
7
- data.tar.gz: 1853e6575b0c5d14e3a9b38f258c7a9c6710c72ffea62313b80c00adc146cbd7101c7070ce5f58b2df73b6e86a1e75ebc95a74bd49c3b11bdf0bc81be10c0f27
6
+ metadata.gz: dccba2bae40dd3a8277854ffa5908a9fa4cce92c449a617a78a10d9e0e4ede28e86abc399edd4c4e798cf78d9b801ebb0f4178dc426ceba1d0daab9099c716be
7
+ data.tar.gz: 61c6c7b9d6fbc708ddbee0626e0d3ee951c0f46644b254ff4c7121913d3a98516eb15595d271878b565e35e0ca89b29a6b5568d145b35296edbd3ae1ddd0fa5e
@@ -36,7 +36,7 @@ module Browser
36
36
  }
37
37
  value = a;
38
38
  } else if (type === 'object' && (value instanceof HTMLElement)) {
39
- value = #{Browser::Element.new(value)};
39
+ value = #{Browser::Element.new(`value`)};
40
40
  } else if (value === null || type === 'undefined' || (type === 'number' && isNaN(value))) {
41
41
  return nil;
42
42
  }
@@ -117,7 +117,7 @@ else
117
117
 
118
118
  Opal.append_path(__dir__.untaint)
119
119
 
120
- require 'concurrent'
120
+ require 'concurrent/atomic/reentrant_read_write_lock'
121
121
  require 'zeitwerk'
122
122
 
123
123
  Isomorfeus.zeitwerk = Zeitwerk::Loader.new
@@ -120,7 +120,15 @@ module Preact::FunctionComponent::Api
120
120
  %x{
121
121
  if (#{self}.method_refs?.[#{method_key}]) { return #{self}.method_refs[#{method_key}]; }
122
122
  if (!#{self}.method_refs) { #{self}.method_refs = {}; }
123
- #{self}.method_refs[#{method_key}] = { m: #{method(method_symbol)}, a: args };
123
+ #{self}.method_refs[#{method_key}] = { m: null, a: args };
124
+ let r = #{self}.method_refs[#{method_key}];
125
+ let dev = #{Isomorfeus.development?};
126
+ r.preact_event_handler_function = function(event, info) {
127
+ let ruby_event = Opal.Preact.native_to_ruby_event(event);
128
+ if (!r.m || dev) { r.m = #{method(method_symbol)} };
129
+ if (r.a.length > 0) { r.m.$call.apply(r.m, [ruby_event, info].concat(r.a)); }
130
+ else { r.m.$call(ruby_event, info); }
131
+ };
124
132
  return #{self}.method_refs[#{method_key}];
125
133
  }
126
134
  end
@@ -100,7 +100,15 @@ module Preact::Component::Api
100
100
  %x{
101
101
  if (#@native.method_refs?.[#{method_key}]) { return #@native.method_refs[#{method_key}]; }
102
102
  if (!#@native.method_refs) { #@native.method_refs = {}; }
103
- #@native.method_refs[#{method_key}] = { m: #{method(method_symbol)}, a: args };
103
+ #@native.method_refs[#{method_key}] = { m: null, a: args };
104
+ let r = #@native.method_refs[#{method_key}];
105
+ let dev = #{Isomorfeus.development?};
106
+ r.preact_event_handler_function = function(event, info) {
107
+ let ruby_event = Opal.Preact.native_to_ruby_event(event);
108
+ if (!r.m || dev) { r.m = #{method(method_symbol)} };
109
+ if (r.a.length > 0) { r.m.$call.apply(r.m, [ruby_event, info].concat(r.a)); }
110
+ else { r.m.$call(ruby_event, info); }
111
+ };
104
112
  return #@native.method_refs[#{method_key}];
105
113
  }
106
114
  end
@@ -1,3 +1,3 @@
1
1
  module Preact
2
- VERSION = '10.6.56'
2
+ VERSION = '10.6.59'
3
3
  end
data/lib/preact.rb CHANGED
@@ -130,14 +130,7 @@ module Preact
130
130
  let ruby_event = self.native_to_ruby_event(event);
131
131
  #{`active_c.__ruby_instance`.instance_exec(`ruby_event`, `info`, &`value`)};
132
132
  }
133
- } else if (type === "object" && typeof value.m === "object" && typeof value.m.$call === "function" ) {
134
- if (!value.preact_event_handler_function) {
135
- value.preact_event_handler_function = function(event, info) {
136
- let ruby_event = self.native_to_ruby_event(event);
137
- if (value.a.length > 0) { value.m.$call.apply(value.m, [ruby_event, info].concat(value.a)); }
138
- else { value.m.$call(ruby_event, info); }
139
- };
140
- }
133
+ } else if (typeof value.preact_event_handler_function === "function") {
141
134
  result[self.lower_camelize(key)] = value.preact_event_handler_function;
142
135
  } else if (type === "string" ) {
143
136
  let active_component = self.active_component();
@@ -154,12 +147,6 @@ module Preact
154
147
  else { method_ref = active_component.__ruby_instance.$method_ref(value); } // create ref for native
155
148
  }
156
149
  if (method_ref) {
157
- if (!method_ref.preact_event_handler_function) {
158
- method_ref.preact_event_handler_function = function(event, info) {
159
- let ruby_event = self.native_to_ruby_event(event);
160
- method_ref.m.$call(ruby_event, info)
161
- };
162
- }
163
150
  result[self.lower_camelize(key)] = method_ref.preact_event_handler_function;
164
151
  } else {
165
152
  let component_name;
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.56
4
+ version: 10.6.59
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-02-26 00:00:00.000000000 Z
11
+ date: 2022-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.14.17
89
+ version: 0.14.21
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.14.17
96
+ version: 0.14.21
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: isomorfeus-redux
99
99
  requirement: !ruby/object:Gem::Requirement