isomorfeus-react 16.12.5 → 16.12.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isomorfeus/config.rb +2 -1
- data/lib/isomorfeus/top_level.rb +1 -0
- data/lib/isomorfeus_react/lucid_app/mixin.rb +0 -1
- data/lib/isomorfeus_react/lucid_app/native_lucid_component_constructor.rb +8 -4
- data/lib/isomorfeus_react/lucid_component/api.rb +6 -1
- data/lib/isomorfeus_react/lucid_component/mixin.rb +0 -1
- data/lib/isomorfeus_react/lucid_component/native_lucid_component_constructor.rb +7 -2
- data/lib/isomorfeus_react/lucid_func/mixin.rb +0 -1
- data/lib/isomorfeus_react/react/function_component/mixin.rb +0 -1
- data/lib/isomorfeus_react/react/memo_component/mixin.rb +0 -1
- data/lib/isomorfeus_react_material/lucid_material/app/mixin.rb +0 -1
- data/lib/isomorfeus_react_material/lucid_material/component/mixin.rb +0 -1
- data/lib/isomorfeus_react_material/lucid_material/func/mixin.rb +0 -1
- data/lib/react/component/api.rb +10 -0
- data/lib/react/component/history.rb +44 -15
- data/lib/react/component/location.rb +2 -2
- data/lib/react/component/match.rb +6 -6
- data/lib/react/component/mixin.rb +0 -1
- data/lib/react/component/props.rb +9 -6
- data/lib/react/component/resolution.rb +9 -6
- data/lib/react/version.rb +1 -1
- metadata +4 -5
- data/lib/isomorfeus_react/react/function_component/resolution.rb +0 -62
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 451e8c1b9c5b2271b16c96f0490b41c4657096577c05577153387057a979c959
|
4
|
+
data.tar.gz: 6190696c2c735f5eb64ab4aecf8047c3c96b0f512d79979c733d0d2fa3c7cf0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed96b7c2325696283d75678b2ce4eb9f4c6a544b621a216a835e7b92ccf7284e6ec9c26ef7576fecf5f71687d2e1e6eec7ac67aa204437a23b088d1339d1f38c
|
7
|
+
data.tar.gz: 53c9ae932a4493352ea0733b7a66d010ad8658e1043d9ce4f4a44e1cd7b371f6b1584413b0abac641685685a365774071f42261dc81e5035250fe85f8c773061
|
data/lib/isomorfeus/config.rb
CHANGED
@@ -97,9 +97,10 @@ module Isomorfeus
|
|
97
97
|
`Opal.global.deepForceUpdate(#{Isomorfeus.top_component})`
|
98
98
|
end
|
99
99
|
end
|
100
|
-
rescue
|
100
|
+
rescue Exception => e
|
101
101
|
# TODO try mount first
|
102
102
|
# if it fails
|
103
|
+
`console.error("force_render failed'! Error: " + #{e.message} + "! Reloading page.")`
|
103
104
|
`location.reload()` if on_browser?
|
104
105
|
end
|
105
106
|
nil
|
data/lib/isomorfeus/top_level.rb
CHANGED
@@ -47,6 +47,7 @@ module Isomorfeus
|
|
47
47
|
rescue Exception => e
|
48
48
|
if !@tried_another_time
|
49
49
|
@tried_another_time = true
|
50
|
+
`console.warn("Deferring mount: " + #{e.message})`
|
50
51
|
`setTimeout(Opal.Isomorfeus.TopLevel['$mount!'], 250)`
|
51
52
|
else
|
52
53
|
`console.error("Unable to mount '" + #{component_name} + "'! Error: " + #{e.message} + "!")`
|
@@ -10,6 +10,7 @@ module LucidApp
|
|
10
10
|
base.lucid_react_component = class extends Opal.global.React.Component {
|
11
11
|
constructor(props) {
|
12
12
|
super(props);
|
13
|
+
const oper = Opal.React;
|
13
14
|
if (base.$default_state_defined()) {
|
14
15
|
this.state = base.$state().$to_n();
|
15
16
|
} else {
|
@@ -39,7 +40,7 @@ module LucidApp
|
|
39
40
|
for (var ref in defined_refs) {
|
40
41
|
if (defined_refs[ref] != null) {
|
41
42
|
this[ref] = function(element) {
|
42
|
-
element =
|
43
|
+
element = oper.native_element_or_component_to_ruby(element);
|
43
44
|
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[ref]`)}
|
44
45
|
}
|
45
46
|
this[ref] = this[ref].bind(this);
|
@@ -47,7 +48,11 @@ module LucidApp
|
|
47
48
|
this[ref] = Opal.global.React.createRef();
|
48
49
|
}
|
49
50
|
}
|
50
|
-
if (base.preload_block) {
|
51
|
+
if (base.preload_block) {
|
52
|
+
oper.active_redux_components.push(this);
|
53
|
+
this.state.preloaded = this.__ruby_instance.$execute_preload_block();
|
54
|
+
oper.active_redux_components.pop();
|
55
|
+
}
|
51
56
|
this.listener = this.listener.bind(this);
|
52
57
|
this.unsubscriber = Opal.Isomorfeus.store.native.subscribe(this.listener);
|
53
58
|
}
|
@@ -60,7 +65,6 @@ module LucidApp
|
|
60
65
|
}
|
61
66
|
render() {
|
62
67
|
const oper = Opal.React;
|
63
|
-
this.context = this.state.isomorfeus_store_state;
|
64
68
|
oper.render_buffer.push([]);
|
65
69
|
// console.log("lucid app pushed", oper.render_buffer, oper.render_buffer.toString());
|
66
70
|
oper.active_components.push(this);
|
@@ -75,7 +79,7 @@ module LucidApp
|
|
75
79
|
return Opal.global.React.createElement(Opal.global.LucidApplicationContext.Provider, { value: this.state.isomorfeus_store_state }, oper.render_buffer.pop());
|
76
80
|
}
|
77
81
|
data_access() {
|
78
|
-
|
82
|
+
this.state.isomorfeus_store_state;
|
79
83
|
}
|
80
84
|
listener() {
|
81
85
|
let next_state = Opal.Isomorfeus.store.native.getState();
|
@@ -67,7 +67,12 @@ module LucidComponent
|
|
67
67
|
def preload(&block)
|
68
68
|
`base.preload_block = block`
|
69
69
|
component_did_mount do
|
70
|
-
|
70
|
+
unless self.state.preloaded
|
71
|
+
@_preload_promise.then { self.state.preloaded = true }.fail do |result|
|
72
|
+
err_text = "#{self.class.name}: preloading failed, last result: #{result.nil? ? 'nil' : result}!"
|
73
|
+
`console.error(err_text)`
|
74
|
+
end
|
75
|
+
end
|
71
76
|
end
|
72
77
|
end
|
73
78
|
|
@@ -10,6 +10,7 @@ module LucidComponent
|
|
10
10
|
base.lucid_react_component = class extends Opal.global.React.Component {
|
11
11
|
constructor(props) {
|
12
12
|
super(props);
|
13
|
+
const oper = Opal.React;
|
13
14
|
if (base.$default_state_defined()) {
|
14
15
|
this.state = base.$state().$to_n();
|
15
16
|
} else {
|
@@ -29,7 +30,7 @@ module LucidComponent
|
|
29
30
|
for (var ref in defined_refs) {
|
30
31
|
if (defined_refs[ref] != null) {
|
31
32
|
this[ref] = function(element) {
|
32
|
-
element =
|
33
|
+
element = oper.native_element_or_component_to_ruby(element);
|
33
34
|
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[ref]`)}
|
34
35
|
}
|
35
36
|
this[ref] = this[ref].bind(this);
|
@@ -37,7 +38,11 @@ module LucidComponent
|
|
37
38
|
this[ref] = Opal.global.React.createRef();
|
38
39
|
}
|
39
40
|
}
|
40
|
-
if (base.preload_block) {
|
41
|
+
if (base.preload_block) {
|
42
|
+
oper.active_redux_components.push(this);
|
43
|
+
this.state.preloaded = this.__ruby_instance.$execute_preload_block();
|
44
|
+
oper.active_redux_components.pop();
|
45
|
+
}
|
41
46
|
}
|
42
47
|
static get displayName() {
|
43
48
|
return #{component_name};
|
@@ -5,7 +5,6 @@ module LucidFunc
|
|
5
5
|
base.include(::React::Component::Features)
|
6
6
|
base.include(::LucidFunc::Initializer)
|
7
7
|
base.include(::React::FunctionComponent::Api)
|
8
|
-
base.include(::React::FunctionComponent::Resolution)
|
9
8
|
base.extend(::React::FunctionComponent::EventHandler)
|
10
9
|
base.extend(::LucidComponent::EnvironmentSupport)
|
11
10
|
base.include(::LucidComponent::EnvironmentSupport)
|
@@ -6,7 +6,6 @@ module React
|
|
6
6
|
base.include(::React::Component::Features)
|
7
7
|
base.include(::React::FunctionComponent::Initializer)
|
8
8
|
base.include(::React::FunctionComponent::Api)
|
9
|
-
base.include(::React::FunctionComponent::Resolution)
|
10
9
|
base.extend(::React::FunctionComponent::EventHandler)
|
11
10
|
base.extend(::React::FunctionComponent::NativeComponentConstructor)
|
12
11
|
end
|
@@ -6,7 +6,6 @@ module React
|
|
6
6
|
base.include(::React::Component::Features)
|
7
7
|
base.include(::React::FunctionComponent::Initializer)
|
8
8
|
base.include(::React::FunctionComponent::Api)
|
9
|
-
base.include(::React::FunctionComponent::Resolution)
|
10
9
|
base.extend(::React::FunctionComponent::EventHandler)
|
11
10
|
base.extend(::React::MemoComponent::NativeComponentConstructor)
|
12
11
|
end
|
@@ -6,7 +6,6 @@ module LucidMaterial
|
|
6
6
|
base.include(::React::Component::Features)
|
7
7
|
base.include(::LucidFunc::Initializer)
|
8
8
|
base.include(::React::FunctionComponent::Api)
|
9
|
-
base.include(::React::FunctionComponent::Resolution)
|
10
9
|
base.extend(::React::FunctionComponent::EventHandler)
|
11
10
|
base.extend(::LucidComponent::EnvironmentSupport)
|
12
11
|
base.include(::LucidComponent::EnvironmentSupport)
|
data/lib/react/component/api.rb
CHANGED
@@ -67,6 +67,16 @@ module React
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
def component_fun(class_name, **ruby_props)
|
71
|
+
%x{
|
72
|
+
return function(props) {
|
73
|
+
let outer_props = Opal.React.to_native_react_props(#{ruby_props});
|
74
|
+
let new_props = Object.assign({}, props, outer_props);
|
75
|
+
return Opal.global.React.createElement(#{class_name.constantize}.react_component, new_props)
|
76
|
+
}
|
77
|
+
}
|
78
|
+
end
|
79
|
+
|
70
80
|
def get_react_element(arg, &block)
|
71
81
|
if block_given?
|
72
82
|
# execute block, fetch last element from buffer
|
@@ -3,33 +3,62 @@ module React
|
|
3
3
|
class History
|
4
4
|
include ::Native::Wrapper
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
def block(prompt)
|
7
|
+
@native.JS[:props].JS[:history].JS.block(prompt)
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_href(location)
|
11
|
+
@native.JS[:props].JS[:history].JS.createHref(location)
|
12
|
+
end
|
13
|
+
|
14
|
+
def go(n)
|
15
|
+
@native.JS[:props].JS[:history].JS.go(n)
|
16
|
+
end
|
17
|
+
|
18
|
+
def go_back
|
19
|
+
@native.JS[:props].JS[:history].JS.goBack()
|
20
|
+
end
|
14
21
|
|
15
|
-
|
22
|
+
def go_forward
|
23
|
+
@native.JS[:props].JS[:history].JS.goForward()
|
24
|
+
end
|
25
|
+
|
26
|
+
def push(*args)
|
27
|
+
@native.JS[:props].JS[:history].JS.push(*args)
|
28
|
+
end
|
29
|
+
|
30
|
+
def replace(*args)
|
31
|
+
@native.JS[:props].JS[:history].JS.replace(*args)
|
32
|
+
end
|
16
33
|
|
17
34
|
def method_missing(prop, *args, &block)
|
18
|
-
@native.JS[:
|
35
|
+
@native.JS[:props].JS[:history].JS[prop]
|
36
|
+
end
|
37
|
+
|
38
|
+
def listen(&block)
|
39
|
+
fun = nil
|
40
|
+
%x{
|
41
|
+
fun = function(location, action) {
|
42
|
+
let ruby_location = #{React::Component::Location.new(`{ props: { location: location }}`)}
|
43
|
+
block.$call(ruby_location, action);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
unlisten = @native.JS[:props].JS[:history].JS.listen(fun)
|
47
|
+
-> { unlisten.JS.call() }
|
19
48
|
end
|
20
49
|
|
21
50
|
def location
|
22
51
|
return @location if @location
|
23
|
-
return nil unless @native.JS[:props].JS[:location]
|
24
|
-
if @native.JS[:props].JS[:location].JS[:pathname]
|
25
|
-
@location = React::Component::Location.new(@native
|
52
|
+
return nil unless @native.JS[:props].JS[:history].JS[:location]
|
53
|
+
if @native.JS[:props].JS[:history].JS[:location].JS[:pathname]
|
54
|
+
@location = React::Component::Location.new(@native)
|
26
55
|
else
|
27
|
-
@native.JS[:props].JS[:location]
|
56
|
+
@native.JS[:props].JS[:history].JS[:location]
|
28
57
|
end
|
29
58
|
end
|
30
59
|
|
31
60
|
def to_n
|
32
|
-
@native
|
61
|
+
@native.JS[:props].JS[:history]
|
33
62
|
end
|
34
63
|
end
|
35
64
|
end
|
@@ -4,11 +4,11 @@ module React
|
|
4
4
|
include ::Native::Wrapper
|
5
5
|
|
6
6
|
def method_missing(prop, *args, &block)
|
7
|
-
@native.JS[:params].JS[prop]
|
7
|
+
@native.JS[:props].JS[:match].JS[:params].JS[prop]
|
8
8
|
end
|
9
9
|
|
10
10
|
def is_exact
|
11
|
-
@native.JS[:isExact]
|
11
|
+
@native.JS[:props].JS[:match].JS[:isExact]
|
12
12
|
end
|
13
13
|
|
14
14
|
def params
|
@@ -16,16 +16,16 @@ module React
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def path
|
19
|
-
@native.JS[:path]
|
19
|
+
@native.JS[:props].JS[:match].JS[:path]
|
20
20
|
end
|
21
21
|
|
22
22
|
def url
|
23
|
-
@native.JS[:url]
|
23
|
+
@native.JS[:props].JS[:match].JS[:url]
|
24
24
|
end
|
25
25
|
|
26
26
|
def to_n
|
27
|
-
@native
|
27
|
+
@native.JS[:props].JS[:match]
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
31
|
-
end
|
31
|
+
end
|
@@ -16,11 +16,11 @@ module React
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def classes
|
19
|
-
@classes ||=
|
19
|
+
@classes ||= React::Component::Styles.new(@native, 'classes')
|
20
20
|
end
|
21
21
|
|
22
22
|
def theme
|
23
|
-
@theme ||=
|
23
|
+
@theme ||= React::Component::Styles.new(@native, 'theme')
|
24
24
|
end
|
25
25
|
|
26
26
|
def isomorfeus_store
|
@@ -29,27 +29,30 @@ module React
|
|
29
29
|
|
30
30
|
# for router convenience
|
31
31
|
def history
|
32
|
+
return @history if @history
|
32
33
|
return nil if `typeof #@native.props.history === 'undefined'`
|
33
|
-
if `typeof #@native.props.history.
|
34
|
-
React::Component::History.new(@native
|
34
|
+
if `typeof #@native.props.history.action !== 'undefined'`
|
35
|
+
@history = React::Component::History.new(@native)
|
35
36
|
else
|
36
37
|
@native.JS[:props].JS[:history]
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
40
41
|
def location
|
42
|
+
return @location if @location
|
41
43
|
return nil if `typeof #@native.props.location === 'undefined'`
|
42
44
|
if `typeof #@native.props.location.pathname !== 'undefined'`
|
43
|
-
React::Component::Location.new(@native
|
45
|
+
@location = React::Component::Location.new(@native)
|
44
46
|
else
|
45
47
|
@native.JS[:props].JS[:location]
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
49
51
|
def match
|
52
|
+
return @match if @match
|
50
53
|
return nil if `typeof #@native.props.match === 'undefined'`
|
51
54
|
if `typeof #@native.props.match.path !== 'undefined'`
|
52
|
-
React::Component::Match.new(@native
|
55
|
+
@match = React::Component::Match.new(@native)
|
53
56
|
else
|
54
57
|
@native.JS[:props].JS[:match]
|
55
58
|
end
|
@@ -8,7 +8,7 @@ module React
|
|
8
8
|
def const_missing(const_name)
|
9
9
|
# language=JS
|
10
10
|
%x{
|
11
|
-
if (typeof Opal.global[const_name]
|
11
|
+
if (typeof Opal.global[const_name] !== "undefined" && (const_name[0] === const_name[0].toUpperCase())) {
|
12
12
|
var new_const = #{React::NativeConstantWrapper.new(`Opal.global[const_name]`, const_name)};
|
13
13
|
#{Object.const_set(const_name, `new_const`)};
|
14
14
|
return new_const;
|
@@ -20,7 +20,10 @@ module React
|
|
20
20
|
|
21
21
|
# this is required for autoloading support, as the component may not be loaded and so its method is not registered.
|
22
22
|
# must load it first, done by const_get, and next time the method will be there.
|
23
|
-
|
23
|
+
|
24
|
+
unless method_defined?(:_react_component_class_resolution_original_method_missing)
|
25
|
+
alias _react_component_class_resolution_original_method_missing method_missing
|
26
|
+
end
|
24
27
|
|
25
28
|
def method_missing(component_name, *args, &block)
|
26
29
|
# check for ruby component and render it
|
@@ -60,8 +63,9 @@ module React
|
|
60
63
|
end
|
61
64
|
end
|
62
65
|
|
63
|
-
|
64
|
-
|
66
|
+
unless method_defined?(:_react_component_resolution_original_method_missing)
|
67
|
+
alias _react_component_resolution_original_method_missing method_missing
|
68
|
+
end
|
65
69
|
|
66
70
|
def method_missing(component_name, *args, &block)
|
67
71
|
# html tags are defined as methods, so they will not end up here.
|
@@ -71,8 +75,7 @@ module React
|
|
71
75
|
# language=JS
|
72
76
|
%x{
|
73
77
|
var component = null;
|
74
|
-
|
75
|
-
if (component_type === "function" || component_type === "object") {
|
78
|
+
if (typeof Opal.global[component_name] !== "undefined" && (component_name[0] === component_name[0].toUpperCase())) {
|
76
79
|
component = Opal.global[component_name];
|
77
80
|
} else {
|
78
81
|
var modules = self.$to_s().split("::");
|
data/lib/react/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isomorfeus-react
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 16.12.
|
4
|
+
version: 16.12.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.0
|
75
|
+
version: 0.1.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.0
|
82
|
+
version: 0.1.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: opal-webpack-loader
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -231,7 +231,6 @@ files:
|
|
231
231
|
- lib/isomorfeus_react/react/function_component/initializer.rb
|
232
232
|
- lib/isomorfeus_react/react/function_component/mixin.rb
|
233
233
|
- lib/isomorfeus_react/react/function_component/native_component_constructor.rb
|
234
|
-
- lib/isomorfeus_react/react/function_component/resolution.rb
|
235
234
|
- lib/isomorfeus_react/react/memo_component/base.rb
|
236
235
|
- lib/isomorfeus_react/react/memo_component/mixin.rb
|
237
236
|
- lib/isomorfeus_react/react/memo_component/native_component_constructor.rb
|
@@ -1,62 +0,0 @@
|
|
1
|
-
module React
|
2
|
-
module FunctionComponent
|
3
|
-
module Resolution
|
4
|
-
def self.included(base)
|
5
|
-
base.instance_exec do
|
6
|
-
alias _react_function_component_resolution_original_const_missing const_missing
|
7
|
-
|
8
|
-
def const_missing(const_name)
|
9
|
-
# language=JS
|
10
|
-
%x{
|
11
|
-
if (typeof Opal.global[const_name] === "object") {
|
12
|
-
var new_const = #{React::NativeConstantWrapper.new(`Opal.global[const_name]`, const_name)};
|
13
|
-
#{Object.const_set(const_name, `new_const`)};
|
14
|
-
return new_const;
|
15
|
-
} else {
|
16
|
-
return #{_react_function_component_resolution_original_const_missing(const_name)};
|
17
|
-
}
|
18
|
-
}
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
alias _react_function_component_resolution_original_method_missing method_missing
|
24
|
-
|
25
|
-
def method_missing(component_name, *args, &block)
|
26
|
-
# html tags are defined as methods, so they will not end up here.
|
27
|
-
# first check for native component and render it, we want to be fast for native components
|
28
|
-
# second check for ruby component and render it, they are a bit slower anyway
|
29
|
-
# third pass on method missing
|
30
|
-
# language=JS
|
31
|
-
%x{
|
32
|
-
var component = null;
|
33
|
-
var component_type = typeof Opal.global[component_name];
|
34
|
-
if (component_type === "function" || component_type === "object") {
|
35
|
-
component = Opal.global[component_name];
|
36
|
-
}
|
37
|
-
else {
|
38
|
-
try {
|
39
|
-
var constant = self.$class().$const_get(component_name, true);
|
40
|
-
if (typeof constant.react_component !== 'undefined') {
|
41
|
-
component = constant.react_component;
|
42
|
-
}
|
43
|
-
} catch(err) { component = null; }
|
44
|
-
}
|
45
|
-
if (!component) {
|
46
|
-
try {
|
47
|
-
constant = Opal.Object.$const_get(component_name);
|
48
|
-
if (typeof constant.react_component !== 'undefined') {
|
49
|
-
component = constant.react_component;
|
50
|
-
}
|
51
|
-
} catch(err) { component = null; }
|
52
|
-
}
|
53
|
-
if (component) {
|
54
|
-
return Opal.React.internal_prepare_args_and_render(component, args, block);
|
55
|
-
} else {
|
56
|
-
return #{_react_function_component_resolution_original_method_missing(component_name, *args, block)};
|
57
|
-
}
|
58
|
-
}
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|