isomorfeus-react 16.12.23 → 16.12.24
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/react_view_helper.rb +5 -2
- data/lib/isomorfeus_react/lucid_app/api.rb +1 -1
- data/lib/react/component/props.rb +4 -0
- data/lib/react/component/styles.rb +44 -3
- data/lib/react/version.rb +1 -1
- 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: 5860bb2392aa87bc2224fcd09490cf803c2463420a0dc7b81eeb2eb2281a9125
|
4
|
+
data.tar.gz: b9ce782e12c36506a6ae46740fe466049d9c34492185ffd5fd913a69fde7d367
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30e21a8dd53fc01f0bb573c355efa588e8a7b0acdf74b5cfe35dd2a82280064543fc734907ee0c8ad5102d7c68a96c39475b25974123238c920ca00163fef18c
|
7
|
+
data.tar.gz: 3daf8ba10d97f38b831da9a34526ae3b47ff3508457cdfc631c3ee01d3105aa0865eb32685e6faf6ab9af2b9f2e4199f41a31f180162b052fad008cb08971ada
|
@@ -43,7 +43,7 @@ module Isomorfeus
|
|
43
43
|
begin
|
44
44
|
asset = Net::HTTP.get(URI(asset_path))
|
45
45
|
rescue Exception => e
|
46
|
-
Isomorfeus.raise_error(message: "Server Side Rendering: Failed loading asset #{asset_path} from webpack dev server. Error: #{e.message}")
|
46
|
+
Isomorfeus.raise_error(message: "Server Side Rendering: Failed loading asset #{asset_path} from webpack dev server. Error: #{e.message}", stack: e.backtrace )
|
47
47
|
end
|
48
48
|
if asset.strip.start_with?('<')
|
49
49
|
Isomorfeus.raise_error(message: "Server Side Rendering: Failed loading asset #{asset_path} from webpack dev server, asset is not javascript. Did the webpack build succeed?")
|
@@ -51,7 +51,7 @@ module Isomorfeus
|
|
51
51
|
begin
|
52
52
|
Isomorfeus.ssr_contexts[thread_id_asset] = ExecJS.permissive_compile(asset)
|
53
53
|
rescue Exception => e
|
54
|
-
Isomorfeus.raise_error(message: "Server Side Rendering: Failed creating context for #{asset_path}. Error: #{e.message}")
|
54
|
+
Isomorfeus.raise_error(message: "Server Side Rendering: Failed creating context for #{asset_path}. Error: #{e.message}", stack: e.backtrace)
|
55
55
|
end
|
56
56
|
else
|
57
57
|
# initialize speednode context
|
@@ -201,6 +201,9 @@ module Isomorfeus
|
|
201
201
|
end
|
202
202
|
render_result << (rendered_tree ? rendered_tree : "SSR didn't work")
|
203
203
|
else
|
204
|
+
if Isomorfeus.respond_to?(:current_user) && Isomorfeus.current_user && !Isomorfeus.current_user.anonymous?
|
205
|
+
render_result << " data-iso-usid=#{Oj.dump(Isomorfeus.current_user.to_sid, mode: :strict)}"
|
206
|
+
end
|
204
207
|
render_result << " data-iso-nloc='#{props[:locale]}'>" unless static
|
205
208
|
end
|
206
209
|
render_result << '</div>'
|
@@ -4,8 +4,8 @@ module LucidApp
|
|
4
4
|
base.instance_exec do
|
5
5
|
def theme(theme_hash = nil, &block)
|
6
6
|
if block_given?
|
7
|
+
result = block.call(React::Component::Styles.new(`base.jss_theme`))
|
7
8
|
%x{
|
8
|
-
let result = block.$call(Opal.Hash.$new(base.jss_theme));
|
9
9
|
if (typeof result.$to_n === 'function') { base.jss_theme = result.$to_n(); }
|
10
10
|
else { base.jss_theme = result; }
|
11
11
|
return result;
|
@@ -1,29 +1,70 @@
|
|
1
1
|
module React
|
2
2
|
module Component
|
3
3
|
class Styles
|
4
|
+
|
4
5
|
def initialize(native, props_prop = false)
|
5
6
|
@native = native
|
6
7
|
@props_prop = props_prop
|
7
8
|
end
|
8
9
|
|
10
|
+
def [](prop)
|
11
|
+
method_missing(prop)
|
12
|
+
end
|
13
|
+
|
14
|
+
def []=(prop, val)
|
15
|
+
method_missing(prop, val)
|
16
|
+
end
|
17
|
+
|
18
|
+
%x{
|
19
|
+
function isObject(obj) { return (obj && typeof obj === 'object'); }
|
20
|
+
|
21
|
+
function mergeDeep(one, two) {
|
22
|
+
return [one, two].reduce(function(pre, obj) {
|
23
|
+
Object.keys(obj).forEach(function(key){
|
24
|
+
let pVal = pre[key];
|
25
|
+
let oVal = obj[key];
|
26
|
+
if (Array.isArray(pVal) && Array.isArray(oVal)) {
|
27
|
+
pre[key] = pVal.concat.apply(this, oVal);
|
28
|
+
} else if (isObject(pVal) && isObject(oVal)) {
|
29
|
+
pre[key] = mergeDeep(pVal, oVal);
|
30
|
+
} else {
|
31
|
+
pre[key] = oVal;
|
32
|
+
}
|
33
|
+
});
|
34
|
+
return pre;
|
35
|
+
}, {});
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
def deep_merge(a_hash)
|
40
|
+
native_hash = a_hash.to_n
|
41
|
+
React::Component::Styles.new(`mergeDeep(#@native, native_hash)`)
|
42
|
+
end
|
43
|
+
|
44
|
+
def deep_merge!(a_hash)
|
45
|
+
native_hash = a_hash.to_n
|
46
|
+
`#@native = mergeDeep(#@native, native_hash)`
|
47
|
+
self
|
48
|
+
end
|
49
|
+
|
9
50
|
def method_missing(prop, *args, &block)
|
10
51
|
%x{
|
11
52
|
let value;
|
12
53
|
if (#@props_prop) {
|
13
54
|
if (!#@native.props[#@props_prop] || typeof #@native.props[#@props_prop][prop] === 'undefined') {
|
14
|
-
console.warn("Style/Theme key " + prop + " returning nil!");
|
55
|
+
console.warn("Style/Theme key '" + prop + "' returning nil!");
|
15
56
|
return #{nil};
|
16
57
|
}
|
17
58
|
value = #@native.props[#@props_prop][prop];
|
18
59
|
} else {
|
19
60
|
if (!#@native || typeof #@native[prop] === 'undefined') {
|
20
|
-
console.warn("Style/Theme key " + prop + " returning nil!");
|
61
|
+
console.warn("Style/Theme key '" + prop + "' returning nil!");
|
21
62
|
return #{nil};
|
22
63
|
}
|
23
64
|
value = #@native[prop];
|
24
65
|
}
|
25
66
|
if (typeof value === 'string' || typeof value === 'number' || Array.isArray(value)) { return value; }
|
26
|
-
if (typeof value === 'function') { return
|
67
|
+
if (typeof value === 'function') { return value.apply(#@native, args); }
|
27
68
|
return Opal.React.Component.Styles.$new(value);
|
28
69
|
}
|
29
70
|
end
|
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.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
11
|
+
date: 2020-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|