isomorfeus-preact 10.6.55 → 10.6.58

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: 24e36cc4a4f88aae6af0204b00a679c9aaf8a545e9c61bc62a1b2454846cbfab
4
- data.tar.gz: cee4d9e10517e8085ae10ae366f4d8ad8731f7e0e6b104897212563aef523a4e
3
+ metadata.gz: fceb37ce2bf859a1a86d4665b07f7119a158e0ee558aaba23af813188b51a8be
4
+ data.tar.gz: f7694bcaa2c40c32e5f0fdcd2921a50941916b54c5f2a4e876efab36c68d233e
5
5
  SHA512:
6
- metadata.gz: 5c66762e3598fa332730f28a7c79bb90c3834e475bb4d82ccdc94fb121f0bcac2ab0f80f6555081ca801c92512b12399f1ad43d61c4fb9f36ac58bd518df5b6d
7
- data.tar.gz: fcab5d3afe8f4b287ccce9d6e4307adcd4a0a74a88fcd7278bf23d9e90549490abca37dc40633839a11e7ba2e816dc77ef98c47229f0d6db764e6bc2da0d2f22
6
+ metadata.gz: 63835fbb8313648ccb64a2e02e62e929494ee6513c001d8f2ef84b93dcd4515c85c13840e8ccf57da48bdad89b1c7dd86fa265206d1831c03d4574f29cf22295
7
+ data.tar.gz: 8afdd54290cb56c017717fb1c5d0dd9cee841376214f2e703ddb3d958e7cd368b2dd3b3b0f8edd79970867a00cd966b8a2ee515e9a9cfef568346a59fac19907
@@ -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
  }
@@ -9,6 +9,6 @@ module LucidApp::Mixin
9
9
  base.include(::LucidComponent::Api)
10
10
  base.include(::LucidApp::Api)
11
11
  base.include(::LucidComponent::Initializer)
12
- base.include(::LucidI18n::Mixin) if `("lucid_i18n/mixin" in Opal.modules)`
12
+ base.include(::LucidI18n::Mixin) if `(Opal.modules.hasOwnProperty("lucid_i18n/mixin"))`
13
13
  end
14
14
  end
@@ -8,6 +8,6 @@ module LucidComponent::Mixin
8
8
  base.include(::Preact::Component::Callbacks)
9
9
  base.include(::LucidComponent::Api)
10
10
  base.include(::LucidComponent::Initializer)
11
- base.include(::LucidI18n::Mixin) if `("lucid_i18n/mixin" in Opal.modules)`
11
+ base.include(::LucidI18n::Mixin) if `(Opal.modules.hasOwnProperty("lucid_i18n/mixin"))`
12
12
  end
13
13
  end
@@ -5,6 +5,6 @@ module LucidFunc::Mixin
5
5
  base.extend(::LucidFunc::NativeComponentConstructor)
6
6
  base.include(::Preact::Elements)
7
7
  base.include(::LucidComponent::Api)
8
- base.include(::LucidI18n::Mixin) if `("lucid_i18n/mixin" in Opal.modules)`
8
+ base.include(::LucidI18n::Mixin) if `(Opal.modules.hasOwnProperty("lucid_i18n/mixin"))`
9
9
  end
10
10
  end
@@ -1,4 +1,12 @@
1
1
  module Preact::FunctionComponent::Api
2
+ def self.included(base)
3
+ base.instance_exec do
4
+ def to_js
5
+ self.JS[:preact_component]
6
+ end
7
+ end
8
+ end
9
+
2
10
  def props
3
11
  @native_props
4
12
  end
@@ -112,7 +120,15 @@ module Preact::FunctionComponent::Api
112
120
  %x{
113
121
  if (#{self}.method_refs?.[#{method_key}]) { return #{self}.method_refs[#{method_key}]; }
114
122
  if (!#{self}.method_refs) { #{self}.method_refs = {}; }
115
- #{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
+ };
116
132
  return #{self}.method_refs[#{method_key}];
117
133
  }
118
134
  end
@@ -49,6 +49,10 @@ module Preact::Component::Api
49
49
  def should_component_update?(&block)
50
50
  `base.should_component_update_block = block`
51
51
  end
52
+
53
+ def to_js
54
+ self.JS[:preact_component]
55
+ end
52
56
  end
53
57
  end
54
58
 
@@ -96,7 +100,15 @@ module Preact::Component::Api
96
100
  %x{
97
101
  if (#@native.method_refs?.[#{method_key}]) { return #@native.method_refs[#{method_key}]; }
98
102
  if (!#@native.method_refs) { #@native.method_refs = {}; }
99
- #@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
+ };
100
112
  return #@native.method_refs[#{method_key}];
101
113
  }
102
114
  end
@@ -1,3 +1,3 @@
1
1
  module Preact
2
- VERSION = '10.6.55'
2
+ VERSION = '10.6.58'
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.55
4
+ version: 10.6.58
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-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby