isomorfeus-react 16.12.4 → 16.12.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/lib/isomorfeus-react-material-ui.rb +2 -13
  3. data/lib/isomorfeus-react.rb +46 -40
  4. data/lib/{react → isomorfeus}/vivify_module.rb +1 -1
  5. data/lib/{lucid_app → isomorfeus_react/lucid_app}/api.rb +1 -1
  6. data/lib/{lucid_app → isomorfeus_react/lucid_app}/base.rb +0 -0
  7. data/lib/{lucid_app → isomorfeus_react/lucid_app}/mixin.rb +3 -3
  8. data/lib/{lucid_app → isomorfeus_react/lucid_app}/native_component_constructor.rb +4 -3
  9. data/lib/{lucid_app → isomorfeus_react/lucid_app}/native_lucid_component_constructor.rb +0 -0
  10. data/lib/{lucid_component → isomorfeus_react/lucid_component}/api.rb +31 -1
  11. data/lib/{lucid_component → isomorfeus_react/lucid_component}/app_store_defaults.rb +0 -0
  12. data/lib/{lucid_component → isomorfeus_react/lucid_component}/app_store_proxy.rb +0 -0
  13. data/lib/{lucid_component → isomorfeus_react/lucid_component}/base.rb +0 -0
  14. data/lib/{lucid_component → isomorfeus_react/lucid_component}/class_store_proxy.rb +0 -0
  15. data/lib/{lucid_component → isomorfeus_react/lucid_component}/component_class_store_defaults.rb +0 -0
  16. data/lib/{lucid_component → isomorfeus_react/lucid_component}/component_instance_store_defaults.rb +0 -0
  17. data/lib/{lucid_component → isomorfeus_react/lucid_component}/environment_support.rb +0 -0
  18. data/lib/{lucid_component → isomorfeus_react/lucid_component}/initializer.rb +3 -3
  19. data/lib/{lucid_component → isomorfeus_react/lucid_component}/instance_store_proxy.rb +0 -0
  20. data/lib/{lucid_component → isomorfeus_react/lucid_component}/mixin.rb +2 -3
  21. data/lib/{lucid_component → isomorfeus_react/lucid_component}/native_component_constructor.rb +5 -4
  22. data/lib/{lucid_component → isomorfeus_react/lucid_component}/native_lucid_component_constructor.rb +0 -0
  23. data/lib/{lucid_func → isomorfeus_react/lucid_func}/base.rb +0 -0
  24. data/lib/{lucid_func → isomorfeus_react/lucid_func}/initializer.rb +3 -3
  25. data/lib/{lucid_func → isomorfeus_react/lucid_func}/mixin.rb +2 -2
  26. data/lib/{lucid_func → isomorfeus_react/lucid_func}/native_component_constructor.rb +0 -0
  27. data/lib/{react → isomorfeus_react/react}/function_component/api.rb +1 -1
  28. data/lib/{react → isomorfeus_react/react}/function_component/base.rb +0 -0
  29. data/lib/{react → isomorfeus_react/react}/function_component/event_handler.rb +0 -0
  30. data/lib/{react → isomorfeus_react/react}/function_component/initializer.rb +0 -0
  31. data/lib/{react → isomorfeus_react/react}/function_component/mixin.rb +1 -1
  32. data/lib/{react → isomorfeus_react/react}/function_component/native_component_constructor.rb +0 -0
  33. data/lib/{react → isomorfeus_react/react}/function_component/resolution.rb +0 -0
  34. data/lib/{react → isomorfeus_react/react}/memo_component/base.rb +0 -0
  35. data/lib/{react → isomorfeus_react/react}/memo_component/mixin.rb +1 -1
  36. data/lib/{react → isomorfeus_react/react}/memo_component/native_component_constructor.rb +0 -0
  37. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/app/base.rb +0 -0
  38. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/app/mixin.rb +3 -3
  39. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/app/native_component_constructor.rb +4 -3
  40. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/component/base.rb +0 -0
  41. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/component/mixin.rb +2 -3
  42. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/component/native_component_constructor.rb +0 -0
  43. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/func/base.rb +0 -0
  44. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/func/mixin.rb +2 -2
  45. data/lib/{lucid_material → isomorfeus_react_material/lucid_material}/func/native_component_constructor.rb +0 -0
  46. data/lib/{lucid_component → lucid_app}/reducers.rb +1 -1
  47. data/lib/react.rb +10 -8
  48. data/lib/react/component/api.rb +1 -1
  49. data/lib/react/component/features.rb +10 -9
  50. data/lib/react/component/mixin.rb +1 -1
  51. data/lib/react/component/resolution.rb +2 -2
  52. data/lib/react/context_wrapper.rb +7 -6
  53. data/lib/react/version.rb +1 -1
  54. metadata +47 -51
  55. data/lib/lucid_component/preloading_support.rb +0 -34
  56. data/lib/lucid_material/func/initializer.rb +0 -21
  57. data/lib/react/active_support_support.rb +0 -13
  58. data/lib/react/component/unsafe_api.rb +0 -33
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69771dea65edc7607119f666d42f3b94e9127086ad3e030c471856102309257e
4
- data.tar.gz: 7c2c7490ada522852b4afb23031a82fa819f772d46e68f39829d5b35de22164b
3
+ metadata.gz: 02d3da5a8c0ad549bf3a6539a220e5d95479e9a21e99392a1a77b29139cb222d
4
+ data.tar.gz: aaa6f2e790085cb9bbd09b029e49d5394bcc7e5d12d27033d4bfdc7646617719
5
5
  SHA512:
6
- metadata.gz: 49e1c4ed99f44f8bb592da6cf0b0e9b20b24ccc435533b32dfff6239418528161387395056870fad6114f22ea9a36a3f88b9380b6900d477c59cd1289ec14153
7
- data.tar.gz: 7b6b021c7a543befab9c9999e13938b4e02d401f357b556d1d4d40494b90c2fef26c7e8b58da9ea0300e6733070d8b8e2646ca1c146f94fb75f6a67af5ccf95d
6
+ metadata.gz: 6181f6153a988daf46595e245f57c81e460543dc6b9696099870f1122fad7e27c3f973c3848888849dd24abf490720888ea162a062d92437c2031d42721e7a20
7
+ data.tar.gz: 2cd1c6f37bb100ef10f0bf51801c25951ca4e0797576b9e5f4db28d3054ace409ec440c2e47368e692026572506e3e40cced5f19cf5293c2e0f8299244de6646
@@ -1,15 +1,4 @@
1
1
  require 'isomorfeus-react'
2
2
 
3
- # LucidMaterial::Component
4
- require 'lucid_material/component/native_component_constructor'
5
- require 'lucid_material/component/mixin'
6
- require 'lucid_material/component/base'
7
- # LucidMaterial::App
8
- require 'lucid_material/app/native_component_constructor'
9
- require 'lucid_material/app/mixin'
10
- require 'lucid_material/app/base'
11
- # LucidMaterial::Func
12
- require 'lucid_material/func/initializer'
13
- require 'lucid_material/func/native_component_constructor'
14
- require 'lucid_material/func/mixin'
15
- require 'lucid_material/func/base'
3
+ Isomorfeus.zeitwerk.push_dir('isomorfeus_react_material')
4
+ require_tree 'isomorfeus_react_material', :autoload
@@ -2,7 +2,7 @@ if RUBY_ENGINE == 'opal'
2
2
  # require 'opal'
3
3
  # require 'native'
4
4
  # require 'promise'
5
- # rely on i-redux to have included above reqiorements
5
+ # rely on i-redux to have included above requirements
6
6
  require 'isomorfeus-redux'
7
7
  require 'active_support/core_ext/string'
8
8
  require 'zeitwerk'
@@ -50,21 +50,20 @@ if RUBY_ENGINE == 'opal'
50
50
  require 'react/native_constant_wrapper'
51
51
 
52
52
  # Function Component
53
- require 'react/function_component/resolution'
54
- require 'react/function_component/initializer'
55
- require 'react/function_component/api'
56
- require 'react/function_component/event_handler'
57
- require 'react/function_component/native_component_constructor'
58
- require 'react/function_component/mixin'
59
- require 'react/function_component/base'
60
- require 'react/memo_component/native_component_constructor'
61
- require 'react/memo_component/mixin'
62
- require 'react/memo_component/base'
53
+ #require 'react/function_component/resolution'
54
+ #require 'react/function_component/initializer'
55
+ #require 'react/function_component/api'
56
+ #require 'react/function_component/event_handler'
57
+ #require 'react/function_component/native_component_constructor'
58
+ #require 'react/function_component/mixin'
59
+ #require 'react/function_component/base'
60
+ #require 'react/memo_component/native_component_constructor'
61
+ #require 'react/memo_component/mixin'
62
+ #require 'react/memo_component/base'
63
63
 
64
64
  # React::Component
65
65
  require 'react/component/api'
66
66
  require 'react/component/callbacks'
67
- # require 'react/component/unsafe_api'
68
67
  require 'react/component/initializer'
69
68
  require 'react/component/native_component_constructor'
70
69
  require 'react/component/state'
@@ -78,48 +77,55 @@ if RUBY_ENGINE == 'opal'
78
77
  require 'react/component/base'
79
78
 
80
79
  # init component reducers
81
- require 'lucid_component/reducers'
82
- LucidComponent::Reducers.add_component_reducers_to_store
80
+ require 'lucid_app/reducers'
81
+ LucidApp::Reducers.add_component_reducers_to_store
83
82
 
84
83
  # init LucidApplicationContext (Store Provider and Consumer)
85
84
  require 'lucid_app/context'
86
85
  LucidApp::Context.create_application_context
87
86
 
88
87
  # LucidFunc
89
- require 'lucid_func/initializer'
90
- require 'lucid_func/native_component_constructor'
91
- require 'lucid_func/mixin'
92
- require 'lucid_func/base'
88
+ #require 'lucid_func/initializer'
89
+ #require 'lucid_func/native_component_constructor'
90
+ #require 'lucid_func/mixin'
91
+ #require 'lucid_func/base'
93
92
 
94
93
  # LucidComponent
95
- require 'lucid_component/environment_support'
96
- require 'lucid_component/api'
97
- require 'lucid_component/app_store_defaults'
98
- require 'lucid_component/component_class_store_defaults'
99
- require 'lucid_component/component_instance_store_defaults'
100
- require 'lucid_component/app_store_proxy'
101
- require 'lucid_component/class_store_proxy'
102
- require 'lucid_component/instance_store_proxy'
103
- require 'lucid_component/initializer'
104
- require 'lucid_component/native_lucid_component_constructor'
105
- require 'lucid_component/native_component_constructor'
106
- require 'lucid_component/preloading_support'
107
- require 'lucid_component/mixin'
108
- require 'lucid_component/base'
94
+ #require 'lucid_component/environment_support'
95
+ #require 'lucid_component/api'
96
+ #require 'lucid_component/app_store_defaults'
97
+ #require 'lucid_component/component_class_store_defaults'
98
+ #require 'lucid_component/component_instance_store_defaults'
99
+ #require 'lucid_component/app_store_proxy'
100
+ #require 'lucid_component/class_store_proxy'
101
+ #require 'lucid_component/instance_store_proxy'
102
+ #require 'lucid_component/initializer'
103
+ #require 'lucid_component/native_lucid_component_constructor'
104
+ #require 'lucid_component/native_component_constructor'
105
+ #require 'lucid_component/mixin'
106
+ #require 'lucid_component/base'
109
107
 
110
108
  # LucidApp
111
- require 'lucid_app/api'
112
- require 'lucid_app/native_lucid_component_constructor'
113
- require 'lucid_app/native_component_constructor'
114
- require 'lucid_app/mixin'
115
- require 'lucid_app/base'
109
+ #require 'lucid_app/api'
110
+ #require 'lucid_app/native_lucid_component_constructor'
111
+ #require 'lucid_app/native_component_constructor'
112
+ #require 'lucid_app/mixin'
113
+ #require 'lucid_app/base'
114
+
115
+ class Object
116
+ include React::Component::Resolution
117
+ end
116
118
 
117
- require 'react/vivify_module'
119
+ # require 'isomorfeus/vivify_module'
118
120
 
119
121
  Isomorfeus.zeitwerk = Zeitwerk::Loader.new
122
+ # Isomorfeus.zeitwerk.vivify_mod_dir = 'components/'
123
+ # Isomorfeus.zeitwerk.vivify_mod_class = Isomorfeus::VivifyModule
124
+
125
+ Isomorfeus.zeitwerk.push_dir('isomorfeus_react')
126
+ require_tree 'isomorfeus_react', :autoload
127
+
120
128
  Isomorfeus.zeitwerk.push_dir('components')
121
- Isomorfeus.zeitwerk.vivify_mod_dir = 'components/'
122
- Isomorfeus.zeitwerk.vivify_mod_class = React::VivifyModule
123
129
  else
124
130
  require 'oj'
125
131
  require 'opal'
@@ -1,4 +1,4 @@
1
- module React
1
+ module Isomorfeus
2
2
  class VivifyModule < ::Module
3
3
  # this is required for autoloading support, as the component may not be loaded and so its method is not registered.
4
4
  # must load it first, done by const_get, and next time the method will be there.
@@ -1,5 +1,5 @@
1
1
  module LucidApp
2
- module API
2
+ module Api
3
3
  def self.included(base)
4
4
  base.instance_exec do
5
5
  def theme(theme_hash = nil, &block)
@@ -9,10 +9,10 @@ module LucidApp
9
9
  base.extend(::LucidComponent::EnvironmentSupport)
10
10
  base.include(::LucidComponent::EnvironmentSupport)
11
11
  base.include(::React::Component::Elements)
12
- base.include(::React::Component::API)
12
+ base.include(::React::Component::Api)
13
13
  base.include(::React::Component::Callbacks)
14
- base.include(::LucidComponent::API)
15
- base.include(::LucidApp::API)
14
+ base.include(::LucidComponent::Api)
15
+ base.include(::LucidApp::Api)
16
16
  base.include(::LucidComponent::Initializer)
17
17
  base.include(::React::Component::Features)
18
18
  base.include(::React::Component::Resolution)
@@ -10,19 +10,20 @@ module LucidApp
10
10
  %x{
11
11
  base.jss_theme = {};
12
12
  base.themed_react_component = function(props) {
13
+ let opag = Opal.global;
13
14
  let classes = null;
14
- let theme = Opal.global.ReactJSS.useTheme();
15
+ let theme = opag.ReactJSS.useTheme();
15
16
  if (base.jss_styles) {
16
17
  if (!base.use_styles || (Opal.Isomorfeus.development && Opal.Isomorfeus.development !== nil)) {
17
18
  let styles;
18
19
  if (typeof base.jss_styles === 'function') { styles = base.jss_styles(theme); }
19
20
  else { styles = base.jss_styles; }
20
- base.use_styles = Opal.global.ReactJSS.createUseStyles(styles);
21
+ base.use_styles = opag.ReactJSS.createUseStyles(styles);
21
22
  }
22
23
  classes = base.use_styles();
23
24
  }
24
25
  let themed_classes_props = Object.assign({}, props, { classes: classes, theme: theme });
25
- return Opal.global.React.createElement(base.lucid_react_component, themed_classes_props);
26
+ return opag.React.createElement(base.lucid_react_component, themed_classes_props);
26
27
  }
27
28
  base.themed_react_component.displayName = #{theme_component_name};
28
29
  base.react_component = function(props) {
@@ -1,5 +1,5 @@
1
1
  module LucidComponent
2
- module API
2
+ module Api
3
3
  def self.included(base)
4
4
  base.instance_exec do
5
5
  # store
@@ -62,8 +62,28 @@ module LucidComponent
62
62
  end
63
63
  end
64
64
  alias_method :styles=, :styles
65
+
66
+ # preloading
67
+ def preload(&block)
68
+ `base.preload_block = block`
69
+ component_did_mount do
70
+ @_preload_promise.then { self.state.preloaded = true } unless self.state.preloaded
71
+ end
72
+ end
73
+
74
+ def while_loading(option = nil, &block)
75
+ wl_block = proc do
76
+ if @_preload_promise.resolved?
77
+ instance_exec(&`base.render_block`)
78
+ else
79
+ instance_exec(&block)
80
+ end
81
+ end
82
+ `base.while_loading_block = wl_block`
83
+ end
65
84
  end
66
85
 
86
+ # styles
67
87
  def styles
68
88
  props.classes
69
89
  end
@@ -71,6 +91,16 @@ module LucidComponent
71
91
  def theme
72
92
  props.theme
73
93
  end
94
+
95
+ # preloading
96
+ def execute_preload_block
97
+ @_preload_promise = instance_exec(&self.class.JS[:preload_block])
98
+ @_preload_promise.resolved?
99
+ end
100
+
101
+ def preloaded?
102
+ !!state.preloaded
103
+ end
74
104
  end
75
105
  end
76
106
  end
@@ -2,11 +2,11 @@ module LucidComponent
2
2
  module Initializer
3
3
  def initialize(native_component)
4
4
  @native = native_component
5
- @app_store = `Opal.LucidComponent.AppStoreProxy.$new(#{self})`
6
- @class_store = `Opal.LucidComponent.ClassStoreProxy.$new(#{self})`
5
+ @app_store = LucidComponent::AppStoreProxy.new(self)
6
+ @class_store = LucidComponent::ClassStoreProxy.new(self)
7
7
  @props = `Opal.React.Component.Props.$new(#@native)`
8
8
  @state = `Opal.React.Component.State.$new(#@native)`
9
- @store = `Opal.LucidComponent.InstanceStoreProxy.$new(#{self})`
9
+ @store = LucidComponent::InstanceStoreProxy.new(self)
10
10
  end
11
11
  end
12
12
  end
@@ -6,13 +6,12 @@ module LucidComponent
6
6
  base.extend(::LucidComponent::NativeComponentConstructor)
7
7
  base.extend(::LucidPropDeclaration::Mixin)
8
8
  base.extend(::React::Component::EventHandler)
9
- base.include(::LucidComponent::PreloadingSupport)
10
9
  base.extend(::LucidComponent::EnvironmentSupport)
11
10
  base.include(::LucidComponent::EnvironmentSupport)
12
11
  base.include(::React::Component::Elements)
13
- base.include(::React::Component::API)
12
+ base.include(::React::Component::Api)
14
13
  base.include(::React::Component::Callbacks)
15
- base.include(::LucidComponent::API)
14
+ base.include(::LucidComponent::Api)
16
15
  base.include(::LucidComponent::Initializer)
17
16
  base.include(::React::Component::Features)
18
17
  base.include(::React::Component::Resolution)
@@ -8,16 +8,17 @@ module LucidComponent
8
8
  # language=JS
9
9
  %x{
10
10
  base.react_component = function(props) {
11
+ let opag = Opal.global;
11
12
  let classes = null;
12
13
  let store;
13
- if (base.store_updates) { store = Opal.global.React.useContext(Opal.global.LucidApplicationContext); }
14
- let theme = Opal.global.ReactJSS.useTheme();
14
+ if (base.store_updates) { store = opag.React.useContext(opag.LucidApplicationContext); }
15
+ let theme = opag.ReactJSS.useTheme();
15
16
  if (base.jss_styles) {
16
17
  if (!base.use_styles || (Opal.Isomorfeus.development && Opal.Isomorfeus.development !== nil)) {
17
18
  let styles;
18
19
  if (typeof base.jss_styles === 'function') { styles = base.jss_styles(theme); }
19
20
  else { styles = base.jss_styles; }
20
- base.use_styles = Opal.global.ReactJSS.createUseStyles(styles);
21
+ base.use_styles = opag.ReactJSS.createUseStyles(styles);
21
22
  }
22
23
  classes = base.use_styles();
23
24
  }
@@ -25,7 +26,7 @@ module LucidComponent
25
26
  new_props.classes = classes;
26
27
  new_props.theme = theme;
27
28
  new_props.store = store;
28
- return Opal.global.React.createElement(base.lucid_react_component, new_props);
29
+ return opag.React.createElement(base.lucid_react_component, new_props);
29
30
  }
30
31
  base.react_component.displayName = #{component_name};
31
32
  }
@@ -3,9 +3,9 @@ module LucidFunc
3
3
  def initialize
4
4
  self.JS[:native_props] = `{ props: null }`
5
5
  @native_props = `Opal.React.Component.Props.$new(#{self})`
6
- @app_store = `Opal.LucidComponent.AppStoreProxy.$new(#{self})`
7
- @class_store = `Opal.LucidComponent.ClassStoreProxy.$new(#{self})`
8
- @store = `Opal.LucidComponent.InstanceStoreProxy.$new(#{self})`
6
+ @app_store = LucidComponent::AppStoreProxy.new(self)
7
+ @class_store = LucidComponent::ClassStoreProxy.new(self)
8
+ @store = LucidComponent::InstanceStoreProxy.new(self)
9
9
  event_handlers = self.class.event_handlers
10
10
  event_handler_source = self.class
11
11
  %x{
@@ -4,13 +4,13 @@ module LucidFunc
4
4
  base.include(::React::Component::Elements)
5
5
  base.include(::React::Component::Features)
6
6
  base.include(::LucidFunc::Initializer)
7
- base.include(::React::FunctionComponent::API)
7
+ base.include(::React::FunctionComponent::Api)
8
8
  base.include(::React::FunctionComponent::Resolution)
9
9
  base.extend(::React::FunctionComponent::EventHandler)
10
10
  base.extend(::LucidComponent::EnvironmentSupport)
11
11
  base.include(::LucidComponent::EnvironmentSupport)
12
12
  base.extend(::LucidFunc::NativeComponentConstructor)
13
- base.include(::LucidComponent::API)
13
+ base.include(::LucidComponent::Api)
14
14
  end
15
15
  end
16
16
  end
@@ -1,6 +1,6 @@
1
1
  module React
2
2
  module FunctionComponent
3
- module API
3
+ module Api
4
4
  def props
5
5
  @native_props
6
6
  end
@@ -5,7 +5,7 @@ module React
5
5
  base.include(::React::Component::Elements)
6
6
  base.include(::React::Component::Features)
7
7
  base.include(::React::FunctionComponent::Initializer)
8
- base.include(::React::FunctionComponent::API)
8
+ base.include(::React::FunctionComponent::Api)
9
9
  base.include(::React::FunctionComponent::Resolution)
10
10
  base.extend(::React::FunctionComponent::EventHandler)
11
11
  base.extend(::React::FunctionComponent::NativeComponentConstructor)
@@ -5,7 +5,7 @@ module React
5
5
  base.include(::React::Component::Elements)
6
6
  base.include(::React::Component::Features)
7
7
  base.include(::React::FunctionComponent::Initializer)
8
- base.include(::React::FunctionComponent::API)
8
+ base.include(::React::FunctionComponent::Api)
9
9
  base.include(::React::FunctionComponent::Resolution)
10
10
  base.extend(::React::FunctionComponent::EventHandler)
11
11
  base.extend(::React::MemoComponent::NativeComponentConstructor)
@@ -10,10 +10,10 @@ module LucidMaterial
10
10
  base.extend(::LucidComponent::EnvironmentSupport)
11
11
  base.include(::LucidComponent::EnvironmentSupport)
12
12
  base.include(::React::Component::Elements)
13
- base.include(::React::Component::API)
13
+ base.include(::React::Component::Api)
14
14
  base.include(::React::Component::Callbacks)
15
- base.include(::LucidComponent::API)
16
- base.include(::LucidApp::API)
15
+ base.include(::LucidComponent::Api)
16
+ base.include(::LucidApp::Api)
17
17
  base.include(::LucidComponent::Initializer)
18
18
  base.include(::React::Component::Features)
19
19
  base.include(::React::Component::Resolution)
@@ -11,19 +11,20 @@ module LucidMaterial
11
11
  %x{
12
12
  base.jss_theme = Opal.global.Mui.createMuiTheme();
13
13
  base.themed_react_component = function(props) {
14
+ let opag = Opal.global;
14
15
  let classes = null;
15
- let theme = Opal.global.MuiStyles.useTheme();
16
+ let theme = opag.MuiStyles.useTheme();
16
17
  if (base.jss_styles) {
17
18
  if (!base.use_styles || (Opal.Isomorfeus.development && Opal.Isomorfeus.development !== nil)) {
18
19
  let styles;
19
20
  if (typeof base.jss_styles === 'function') { styles = base.jss_styles(theme); }
20
21
  else { styles = base.jss_styles; }
21
- base.use_styles = Opal.global.MuiStyles.makeStyles(styles);
22
+ base.use_styles = opag.MuiStyles.makeStyles(styles);
22
23
  }
23
24
  classes = base.use_styles();
24
25
  }
25
26
  let themed_classes_props = Object.assign({}, props, { classes: classes, theme: theme });
26
- return Opal.global.React.createElement(base.lucid_react_component, themed_classes_props);
27
+ return opag.React.createElement(base.lucid_react_component, themed_classes_props);
27
28
  }
28
29
  base.themed_react_component.displayName = #{theme_component_name};
29
30
  base.react_component = function(props) {
@@ -7,13 +7,12 @@ module LucidMaterial
7
7
  base.extend(::LucidMaterial::Component::NativeComponentConstructor)
8
8
  base.extend(::LucidPropDeclaration::Mixin)
9
9
  base.extend(::React::Component::EventHandler)
10
- base.include(::LucidComponent::PreloadingSupport)
11
10
  base.extend(::LucidComponent::EnvironmentSupport)
12
11
  base.include(::LucidComponent::EnvironmentSupport)
13
12
  base.include(::React::Component::Elements)
14
- base.include(::React::Component::API)
13
+ base.include(::React::Component::Api)
15
14
  base.include(::React::Component::Callbacks)
16
- base.include(::LucidComponent::API)
15
+ base.include(::LucidComponent::Api)
17
16
  base.include(::LucidComponent::Initializer)
18
17
  base.include(::React::Component::Features)
19
18
  base.include(::React::Component::Resolution)
@@ -5,13 +5,13 @@ module LucidMaterial
5
5
  base.include(::React::Component::Elements)
6
6
  base.include(::React::Component::Features)
7
7
  base.include(::LucidFunc::Initializer)
8
- base.include(::React::FunctionComponent::API)
8
+ base.include(::React::FunctionComponent::Api)
9
9
  base.include(::React::FunctionComponent::Resolution)
10
10
  base.extend(::React::FunctionComponent::EventHandler)
11
11
  base.extend(::LucidComponent::EnvironmentSupport)
12
12
  base.include(::LucidComponent::EnvironmentSupport)
13
13
  base.extend(::LucidMaterial::Func::NativeComponentConstructor)
14
- base.include(::LucidComponent::API)
14
+ base.include(::LucidComponent::Api)
15
15
  end
16
16
  end
17
17
  end
@@ -1,4 +1,4 @@
1
- module LucidComponent
1
+ module LucidApp
2
2
  module Reducers
3
3
  class << self
4
4
  attr_reader :component_reducers_added
@@ -62,34 +62,36 @@ module React
62
62
  };
63
63
 
64
64
  self.internal_prepare_args_and_render = function(component, args, block) {
65
+ let operain = Opal.React.internal_render;
65
66
  if (args.length > 0) {
66
67
  let last_arg = args[args.length - 1];
67
68
  if (last_arg && last_arg.constructor === String) {
68
- if (args.length === 1) { return Opal.React.internal_render(component, null, last_arg, null); }
69
- else { Opal.React.internal_render(component, args[0], last_arg, null); }
70
- } else { Opal.React.internal_render(component, args[0], null, block); }
71
- } else { Opal.React.internal_render(component, null, null, block); }
69
+ if (args.length === 1) { return operain(component, null, last_arg, null); }
70
+ else { operain(component, args[0], last_arg, null); }
71
+ } else { operain(component, args[0], null, block); }
72
+ } else { operain(component, null, null, block); }
72
73
  };
73
74
 
74
75
  self.internal_render = function(component, props, string_child, block) {
76
+ let operabu = Opal.React.render_buffer;
75
77
  let children;
76
78
  let native_props = null;
77
79
  if (string_child) {
78
80
  children = string_child;
79
81
  } else if (block && block !== nil) {
80
- Opal.React.render_buffer.push([]);
82
+ operabu.push([]);
81
83
  // console.log("internal_render pushed", Opal.React.render_buffer, Opal.React.render_buffer.toString());
82
84
  let block_result = block.$call();
83
85
  if (block_result && (block_result.constructor === String || block_result.constructor === Number)) {
84
- Opal.React.render_buffer[Opal.React.render_buffer.length - 1].push(block_result);
86
+ operabu[operabu.length - 1].push(block_result);
85
87
  }
86
88
  // console.log("internal_render popping", Opal.React.render_buffer, Opal.React.render_buffer.toString());
87
- children = Opal.React.render_buffer.pop();
89
+ children = operabu.pop();
88
90
  if (children.length === 1) { children = children[0]; }
89
91
  else if (children.length === 0) { children = null; }
90
92
  }
91
93
  if (props && props !== nil) { native_props = Opal.React.to_native_react_props(props); }
92
- Opal.React.render_buffer[Opal.React.render_buffer.length - 1].push(Opal.global.React.createElement(component, native_props, children));
94
+ operabu[operabu.length - 1].push(Opal.global.React.createElement(component, native_props, children));
93
95
  };
94
96
 
95
97
  self.active_components = [];
@@ -1,6 +1,6 @@
1
1
  module React
2
2
  module Component
3
- module API
3
+ module Api
4
4
  def self.included(base)
5
5
  base.instance_exec do
6
6
  base_module = base.to_s.deconstantize
@@ -14,20 +14,21 @@ module React
14
14
  element = element_or_query
15
15
  end
16
16
  %x{
17
- Opal.React.render_buffer.push([]);
18
- // console.log("portal pushed", Opal.React.render_buffer, Opal.React.render_buffer.toString());
17
+ let operabu = Opal.React.render_buffer;
18
+ operabu.push([]);
19
+ // console.log("portal pushed", operabu, operabu.toString());
19
20
  if (block !== nil) {
20
21
  let block_result = block.$call()
21
- let last_buffer_length = Opal.React.render_buffer[Opal.React.render_buffer.length - 1].length;
22
- let last_buffer_element = Opal.React.render_buffer[Opal.React.render_buffer.length - 1][last_buffer_length - 1];
22
+ let last_buffer_length = operabu[operabu.length - 1].length;
23
+ let last_buffer_element = operabu[operabu.length - 1][last_buffer_length - 1];
23
24
  if (block_result && (block_result.constructor === String || block_result.constructor === Number)) {
24
- Opal.React.render_buffer[Opal.React.render_buffer.length - 1].push(block_result);
25
+ operabu[operabu.length - 1].push(block_result);
25
26
  }
26
27
  }
27
- // console.log("portal popping", Opal.React.render_buffer, Opal.React.render_buffer.toString());
28
- var react_element = Opal.global.React.createPortal(Opal.React.render_buffer.pop(), element);
29
- Opal.React.render_buffer[Opal.React.render_buffer.length - 1].push(react_element);
30
- // console.log("portal pushed", Opal.React.render_buffer, Opal.React.render_buffer.toString());
28
+ // console.log("portal popping", operabu, operabu.toString());
29
+ var react_element = Opal.global.React.createPortal(operabu.pop(), element);
30
+ operabu[operabu.length - 1].push(react_element);
31
+ // console.log("portal pushed", operabu, operabu.toString());
31
32
  }
32
33
  end
33
34
 
@@ -7,7 +7,7 @@ module React
7
7
  base.extend(::LucidPropDeclaration::Mixin)
8
8
  base.extend(::React::Component::EventHandler)
9
9
  base.include(::React::Component::Elements)
10
- base.include(::React::Component::API)
10
+ base.include(::React::Component::Api)
11
11
  base.include(::React::Component::Callbacks)
12
12
  base.include(::React::Component::Initializer)
13
13
  base.include(::React::Component::Features)
@@ -75,8 +75,8 @@ module React
75
75
  if (component_type === "function" || component_type === "object") {
76
76
  component = Opal.global[component_name];
77
77
  } else {
78
- var modules = self.$class().$to_s().split("::");
79
- var modules_length = modules.length - 1;
78
+ var modules = self.$to_s().split("::");
79
+ var modules_length = modules.length;
80
80
  var module;
81
81
  var constant;
82
82
  for (var i = modules_length; i > 0; i--) {
@@ -9,6 +9,7 @@ module React
9
9
  def Consumer(*args, &block)
10
10
  # why not use internal_prepare_args and render?
11
11
  %x{
12
+ let operabu = Opal.React.render_buffer;
12
13
  let props = null;
13
14
 
14
15
  if (args.length > 0) { props = Opal.React.to_native_react_props(args[0]); }
@@ -16,20 +17,20 @@ module React
16
17
  let react_element = Opal.global.React.createElement(this.native.Consumer, props, function(value) {
17
18
  let children = null;
18
19
  if (block !== nil) {
19
- Opal.React.render_buffer.push([]);
20
- // console.log("consumer pushed", Opal.React.render_buffer, Opal.React.render_buffer.toString());
20
+ operabu.push([]);
21
+ // console.log("consumer pushed", operabu, operabu.toString());
21
22
  let block_result = block.$call();
22
23
  if (block_result && (block_result.constructor === String || block_result.constructor === Number)) {
23
- Opal.React.render_buffer[Opal.React.render_buffer.length - 1].push(block_result);
24
+ operabu[operabu.length - 1].push(block_result);
24
25
  }
25
- // console.log("consumer popping", Opal.React.render_buffer, Opal.React.render_buffer.toString());
26
- children = Opal.React.render_buffer.pop();
26
+ // console.log("consumer popping", operabu, operabu.toString());
27
+ children = operabu.pop();
27
28
  if (children.length == 1) { children = children[0]; }
28
29
  else if (children.length == 0) { children = null; }
29
30
  }
30
31
  return children;
31
32
  });
32
- Opal.React.render_buffer[Opal.React.render_buffer.length - 1].push(react_element);
33
+ operabu[operabu.length - 1].push(react_element);
33
34
  }
34
35
  end
35
36
 
@@ -1,3 +1,3 @@
1
1
  module React
2
- VERSION = '16.12.4'
2
+ VERSION = '16.12.5'
3
3
  end
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
4
+ version: 16.12.5
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-19 00:00:00.000000000 Z
11
+ date: 2019-12-21 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.9.6
89
+ version: 0.9.10
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.9.6
96
+ version: 0.9.10
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: isomorfeus-redux
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -202,44 +202,52 @@ files:
202
202
  - lib/isomorfeus/react_view_helper.rb
203
203
  - lib/isomorfeus/top_level.rb
204
204
  - lib/isomorfeus/top_level_ssr.rb
205
- - lib/lucid_app/api.rb
206
- - lib/lucid_app/base.rb
205
+ - lib/isomorfeus/vivify_module.rb
206
+ - lib/isomorfeus_react/lucid_app/api.rb
207
+ - lib/isomorfeus_react/lucid_app/base.rb
208
+ - lib/isomorfeus_react/lucid_app/mixin.rb
209
+ - lib/isomorfeus_react/lucid_app/native_component_constructor.rb
210
+ - lib/isomorfeus_react/lucid_app/native_lucid_component_constructor.rb
211
+ - lib/isomorfeus_react/lucid_component/api.rb
212
+ - lib/isomorfeus_react/lucid_component/app_store_defaults.rb
213
+ - lib/isomorfeus_react/lucid_component/app_store_proxy.rb
214
+ - lib/isomorfeus_react/lucid_component/base.rb
215
+ - lib/isomorfeus_react/lucid_component/class_store_proxy.rb
216
+ - lib/isomorfeus_react/lucid_component/component_class_store_defaults.rb
217
+ - lib/isomorfeus_react/lucid_component/component_instance_store_defaults.rb
218
+ - lib/isomorfeus_react/lucid_component/environment_support.rb
219
+ - lib/isomorfeus_react/lucid_component/initializer.rb
220
+ - lib/isomorfeus_react/lucid_component/instance_store_proxy.rb
221
+ - lib/isomorfeus_react/lucid_component/mixin.rb
222
+ - lib/isomorfeus_react/lucid_component/native_component_constructor.rb
223
+ - lib/isomorfeus_react/lucid_component/native_lucid_component_constructor.rb
224
+ - lib/isomorfeus_react/lucid_func/base.rb
225
+ - lib/isomorfeus_react/lucid_func/initializer.rb
226
+ - lib/isomorfeus_react/lucid_func/mixin.rb
227
+ - lib/isomorfeus_react/lucid_func/native_component_constructor.rb
228
+ - lib/isomorfeus_react/react/function_component/api.rb
229
+ - lib/isomorfeus_react/react/function_component/base.rb
230
+ - lib/isomorfeus_react/react/function_component/event_handler.rb
231
+ - lib/isomorfeus_react/react/function_component/initializer.rb
232
+ - lib/isomorfeus_react/react/function_component/mixin.rb
233
+ - lib/isomorfeus_react/react/function_component/native_component_constructor.rb
234
+ - lib/isomorfeus_react/react/function_component/resolution.rb
235
+ - lib/isomorfeus_react/react/memo_component/base.rb
236
+ - lib/isomorfeus_react/react/memo_component/mixin.rb
237
+ - lib/isomorfeus_react/react/memo_component/native_component_constructor.rb
238
+ - lib/isomorfeus_react_material/lucid_material/app/base.rb
239
+ - lib/isomorfeus_react_material/lucid_material/app/mixin.rb
240
+ - lib/isomorfeus_react_material/lucid_material/app/native_component_constructor.rb
241
+ - lib/isomorfeus_react_material/lucid_material/component/base.rb
242
+ - lib/isomorfeus_react_material/lucid_material/component/mixin.rb
243
+ - lib/isomorfeus_react_material/lucid_material/component/native_component_constructor.rb
244
+ - lib/isomorfeus_react_material/lucid_material/func/base.rb
245
+ - lib/isomorfeus_react_material/lucid_material/func/mixin.rb
246
+ - lib/isomorfeus_react_material/lucid_material/func/native_component_constructor.rb
207
247
  - lib/lucid_app/context.rb
208
- - lib/lucid_app/mixin.rb
209
- - lib/lucid_app/native_component_constructor.rb
210
- - lib/lucid_app/native_lucid_component_constructor.rb
211
- - lib/lucid_component/api.rb
212
- - lib/lucid_component/app_store_defaults.rb
213
- - lib/lucid_component/app_store_proxy.rb
214
- - lib/lucid_component/base.rb
215
- - lib/lucid_component/class_store_proxy.rb
216
- - lib/lucid_component/component_class_store_defaults.rb
217
- - lib/lucid_component/component_instance_store_defaults.rb
218
- - lib/lucid_component/environment_support.rb
219
- - lib/lucid_component/initializer.rb
220
- - lib/lucid_component/instance_store_proxy.rb
221
- - lib/lucid_component/mixin.rb
222
- - lib/lucid_component/native_component_constructor.rb
223
- - lib/lucid_component/native_lucid_component_constructor.rb
224
- - lib/lucid_component/preloading_support.rb
225
- - lib/lucid_component/reducers.rb
226
- - lib/lucid_func/base.rb
227
- - lib/lucid_func/initializer.rb
228
- - lib/lucid_func/mixin.rb
229
- - lib/lucid_func/native_component_constructor.rb
230
- - lib/lucid_material/app/base.rb
231
- - lib/lucid_material/app/mixin.rb
232
- - lib/lucid_material/app/native_component_constructor.rb
233
- - lib/lucid_material/component/base.rb
234
- - lib/lucid_material/component/mixin.rb
235
- - lib/lucid_material/component/native_component_constructor.rb
236
- - lib/lucid_material/func/base.rb
237
- - lib/lucid_material/func/initializer.rb
238
- - lib/lucid_material/func/mixin.rb
239
- - lib/lucid_material/func/native_component_constructor.rb
248
+ - lib/lucid_app/reducers.rb
240
249
  - lib/lucid_prop_declaration/mixin.rb
241
250
  - lib/react.rb
242
- - lib/react/active_support_support.rb
243
251
  - lib/react/children.rb
244
252
  - lib/react/component/api.rb
245
253
  - lib/react/component/base.rb
@@ -257,23 +265,11 @@ files:
257
265
  - lib/react/component/resolution.rb
258
266
  - lib/react/component/state.rb
259
267
  - lib/react/component/styles.rb
260
- - lib/react/component/unsafe_api.rb
261
268
  - lib/react/context_wrapper.rb
262
- - lib/react/function_component/api.rb
263
- - lib/react/function_component/base.rb
264
- - lib/react/function_component/event_handler.rb
265
- - lib/react/function_component/initializer.rb
266
- - lib/react/function_component/mixin.rb
267
- - lib/react/function_component/native_component_constructor.rb
268
- - lib/react/function_component/resolution.rb
269
- - lib/react/memo_component/base.rb
270
- - lib/react/memo_component/mixin.rb
271
- - lib/react/memo_component/native_component_constructor.rb
272
269
  - lib/react/native_constant_wrapper.rb
273
270
  - lib/react/ref.rb
274
271
  - lib/react/synthetic_event.rb
275
272
  - lib/react/version.rb
276
- - lib/react/vivify_module.rb
277
273
  - lib/react_dom.rb
278
274
  - lib/react_dom_server.rb
279
275
  homepage: http://isomorfeus.com
@@ -1,34 +0,0 @@
1
- module LucidComponent
2
- module PreloadingSupport
3
- def self.included(base)
4
- base.instance_exec do
5
- def preload(&block)
6
- `base.preload_block = block`
7
- component_did_mount do
8
- @_preload_promise.then { self.state.preloaded = true } unless self.state.preloaded
9
- end
10
- end
11
-
12
- def while_loading(option = nil, &block)
13
- wl_block = proc do
14
- if @_preload_promise.resolved?
15
- instance_exec(&`base.render_block`)
16
- else
17
- instance_exec(&block)
18
- end
19
- end
20
- `base.while_loading_block = wl_block`
21
- end
22
- end
23
-
24
- def execute_preload_block
25
- @_preload_promise = instance_exec(&self.class.JS[:preload_block])
26
- @_preload_promise.resolved?
27
- end
28
-
29
- def preloaded?
30
- !!state.preloaded
31
- end
32
- end
33
- end
34
- end
@@ -1,21 +0,0 @@
1
- module LucidMaterial
2
- module Func
3
- module Initializer
4
- def initialize
5
- self.JS[:native_props] = `{ props: null }`
6
- @native_props = `Opal.React.Component.Props.$new(#{self})`
7
- @app_store = `Opal.LucidComponent.AppStoreProxy.$new(#{self})`
8
- @class_store = `Opal.LucidComponent.ClassStoreProxy.$new(#{self})`
9
- @store = `Opal.LucidComponent.InstanceStoreProxy.$new(#{self})`
10
- event_handlers = self.class.event_handlers
11
- event_handler_source = self.class
12
- %x{
13
- for (var i = 0; i < event_handlers.length; i++) {
14
- self[event_handlers[i]] = event_handler_source[event_handlers[i]];
15
- self[event_handlers[i]] = self[event_handlers[i]].bind(self);
16
- }
17
- }
18
- end
19
- end
20
- end
21
- end
@@ -1,13 +0,0 @@
1
- class String
2
- def demodulize
3
- if i = self.rindex("::")
4
- self[(i + 2)..-1]
5
- else
6
- self
7
- end
8
- end
9
-
10
- def deconstantize
11
- self[0, self.rindex("::") || 0] # implementation based on the one in facets' Module#spacename
12
- end
13
- end
@@ -1,33 +0,0 @@
1
- module React
2
- module Component
3
- module UnsafeAPI
4
- def self.included(base)
5
- base.instance_exec do
6
- def unsafe_component_will_mount(&block)
7
- %x{
8
- self.react_component.prototype.UNSAFE_componentWillMount = function() {
9
- return #{`this.__ruby_instance`.instance_exec(&block)};
10
- }
11
- }
12
- end
13
-
14
- def unsafe_component_will_receive_props(&block)
15
- %x{
16
- self.react_component.prototype.UNSAFE_componentWillReceiveProps = function(next_props) {
17
- return #{`this.__ruby_instance`.instance_exec(React::Component::Props.new(`{props: next_props}`), &block)};
18
- }
19
- }
20
- end
21
-
22
- def unsafe_component_will_update(&block)
23
- %x{
24
- self.react_component.prototype.UNSAFE_componentWillUpdate = function(next_props, next_state) {
25
- return #{`this.__ruby_instance`.instance_exec(React::Component::Props.new(`{props: next_props}`), `Opal.Hash.$new(next_state)`, &block)};
26
- }
27
- }
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end