isomorfeus-react 16.12.24 → 16.13.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5860bb2392aa87bc2224fcd09490cf803c2463420a0dc7b81eeb2eb2281a9125
4
- data.tar.gz: b9ce782e12c36506a6ae46740fe466049d9c34492185ffd5fd913a69fde7d367
3
+ metadata.gz: 947da878f70ba5a12ed18872ce80759e8d8653a7690527a906bd91f10edc1333
4
+ data.tar.gz: 7ed9f57c7eb15dcf6b6b5d7d1650e4e55041702cc948cdec4c14321db995f50e
5
5
  SHA512:
6
- metadata.gz: 30e21a8dd53fc01f0bb573c355efa588e8a7b0acdf74b5cfe35dd2a82280064543fc734907ee0c8ad5102d7c68a96c39475b25974123238c920ca00163fef18c
7
- data.tar.gz: 3daf8ba10d97f38b831da9a34526ae3b47ff3508457cdfc631c3ee01d3105aa0865eb32685e6faf6ab9af2b9f2e4199f41a31f180162b052fad008cb08971ada
6
+ metadata.gz: 260fdc8fc33d3346b7c8f0faf037a9061fda2832aa2713fa12cc0981f9efcbf6084b1768fe5518eb925b5504e667cad95c4b5a0da0cd38bb105783abcf4b4a0d
7
+ data.tar.gz: 72e8199ae9fe16615f1f6140715ffdda6d9db023e2f54dfb8476d05da9b62849590f6925a02940d5e968a11a307198642ae9af04011f8e9633cb8af647e3b0ff
@@ -1,8 +1,4 @@
1
1
  if RUBY_ENGINE == 'opal'
2
- # require 'opal'
3
- # require 'native'
4
- # require 'promise'
5
- # rely on i-redux to have included above requirements
6
2
  require 'isomorfeus-redux'
7
3
  require 'active_support/core_ext/string'
8
4
  require 'zeitwerk'
@@ -49,18 +45,6 @@ if RUBY_ENGINE == 'opal'
49
45
  require 'react/context_wrapper'
50
46
  require 'react/native_constant_wrapper'
51
47
 
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'
63
-
64
48
  # React::Component
65
49
  require 'react/component/api'
66
50
  require 'react/component/callbacks'
@@ -75,51 +59,15 @@ if RUBY_ENGINE == 'opal'
75
59
  require 'react/component/mixin'
76
60
  require 'react/component/base'
77
61
 
78
- # init component reducers
79
- require 'lucid_app/reducers'
80
- LucidApp::Reducers.add_component_reducers_to_store
81
-
82
62
  # init LucidApplicationContext (Store Provider and Consumer)
83
63
  require 'lucid_app/context'
84
64
  LucidApp::Context.create_application_context
85
65
 
86
- # LucidFunc
87
- #require 'lucid_func/initializer'
88
- #require 'lucid_func/native_component_constructor'
89
- #require 'lucid_func/mixin'
90
- #require 'lucid_func/base'
91
-
92
- # LucidComponent
93
- #require 'lucid_component/environment_support'
94
- #require 'lucid_component/api'
95
- #require 'lucid_component/app_store_defaults'
96
- #require 'lucid_component/component_class_store_defaults'
97
- #require 'lucid_component/component_instance_store_defaults'
98
- #require 'lucid_component/app_store_proxy'
99
- #require 'lucid_component/class_store_proxy'
100
- #require 'lucid_component/instance_store_proxy'
101
- #require 'lucid_component/initializer'
102
- #require 'lucid_component/native_lucid_component_constructor'
103
- #require 'lucid_component/native_component_constructor'
104
- #require 'lucid_component/mixin'
105
- #require 'lucid_component/base'
106
-
107
- # LucidApp
108
- #require 'lucid_app/api'
109
- #require 'lucid_app/native_lucid_component_constructor'
110
- #require 'lucid_app/native_component_constructor'
111
- #require 'lucid_app/mixin'
112
- #require 'lucid_app/base'
113
-
114
66
  class Object
115
67
  include React::Component::Resolution
116
68
  end
117
69
 
118
- # require 'isomorfeus/vivify_module'
119
-
120
70
  Isomorfeus.zeitwerk = Zeitwerk::Loader.new
121
- # Isomorfeus.zeitwerk.vivify_mod_dir = 'components/'
122
- # Isomorfeus.zeitwerk.vivify_mod_class = Isomorfeus::VivifyModule
123
71
 
124
72
  Isomorfeus.zeitwerk.push_dir('isomorfeus_react')
125
73
  require_tree 'isomorfeus_react', :autoload
@@ -57,6 +57,7 @@ module Isomorfeus
57
57
  # initialize speednode context
58
58
  unless Isomorfeus.ssr_contexts.key?(thread_id_asset)
59
59
  asset_file_name = OpalWebpackLoader::Manifest.lookup_path_for(asset)
60
+ Isomorfeus.raise_error(message: "Server Side Rendering: Build asset file not found for #{asset}. Has it been build?") unless asset_file_name
60
61
  asset_path = File.join('public', asset_file_name)
61
62
  Isomorfeus.ssr_contexts[thread_id_asset] = ExecJS.permissive_compile(File.read(asset_path))
62
63
  end
@@ -97,8 +98,8 @@ module Isomorfeus
97
98
  else { global.Opal.Isomorfeus.TopLevel.$render_component_to_string('#{component_name}', #{Oj.dump(props, mode: :strict)}); }
98
99
  global.FirstPassFinished = 'transport';
99
100
  } catch (e) {
100
- global.Exception = e;
101
- global.FirstPassFinished = 'transport';
101
+ global.Exception = e;
102
+ global.FirstPassFinished = 'transport';
102
103
  }
103
104
  }, $$1.$$s = this, $$1.$$arity = 0, $$1))
104
105
  } else { return global.FirstPassFinished = true; };
@@ -5,8 +5,6 @@ module LucidApp
5
5
  base.extend(::LucidApp::NativeLucidComponentConstructor)
6
6
  base.extend(::LucidApp::NativeComponentConstructor)
7
7
  base.extend(::LucidPropDeclaration::Mixin)
8
- base.extend(::Isomorfeus::ExecutionEnvironmentHelpers)
9
- base.include(::Isomorfeus::ExecutionEnvironmentHelpers)
10
8
  base.include(::React::Component::Elements)
11
9
  base.include(::React::Component::Api)
12
10
  base.include(::React::Component::Callbacks)
@@ -18,20 +18,15 @@ module LucidApp
18
18
  };
19
19
  this.state.isomorfeus_store_state = Opal.Isomorfeus.store.native.getState();
20
20
  var current_store_state = this.state.isomorfeus_store_state;
21
- if (typeof current_store_state.component_class_state[#{component_name}] !== "undefined") {
22
- this.state.component_class_state = {};
23
- this.state.component_class_state[#{component_name}] = current_store_state.component_class_state[#{component_name}];
21
+ if (typeof current_store_state.class_state[#{component_name}] !== "undefined") {
22
+ this.state.class_state = {};
23
+ this.state.class_state[#{component_name}] = current_store_state.class_state[#{component_name}];
24
24
  } else {
25
- this.state.component_class_state = {};
26
- this.state.component_class_state[#{component_name}] = {};
25
+ this.state.class_state = {};
26
+ this.state.class_state[#{component_name}] = {};
27
27
  };
28
28
  this.__ruby_instance = base.$new(this);
29
- this.__object_id = this.__ruby_instance.$object_id().$to_s();
30
29
  if (Opal.Isomorfeus.$top_component() == nil) { Opal.Isomorfeus['$top_component='](this); }
31
- if (!this.state.component_state) {
32
- this.state.component_state = {};
33
- this.state.component_state[this.__object_id] = {};
34
- };
35
30
  var defined_refs = #{base.defined_refs};
36
31
  for (var ref in defined_refs) {
37
32
  if (defined_refs[ref] != null) {
@@ -7,31 +7,8 @@ module LucidComponent
7
7
  attr_accessor :class_store
8
8
  attr_accessor :store
9
9
 
10
- def default_app_store_defined
11
- @default_app_store_defined
12
- end
13
-
14
- def default_class_store_defined
15
- @default_class_store_defined
16
- end
17
-
18
- def default_instance_store_defined
19
- @default_instance_store_defined
20
- end
21
-
22
- def app_store
23
- @default_app_store_defined = true
24
- @default_app_store ||= ::LucidComponent::AppStoreDefaults.new(state, self.to_s)
25
- end
26
-
27
10
  def class_store
28
- @default_class_store_defined = true
29
- @default_class_store ||= ::LucidComponent::ComponentClassStoreDefaults.new(state, self.to_s)
30
- end
31
-
32
- def store
33
- @default_instance_store_defined = true
34
- @default_instance_store ||= ::LucidComponent::ComponentInstanceStoreDefaults.new(state, self.to_s)
11
+ @class_store ||= ::LucidComponent::ClassStoreProxy.new(self.to_s)
35
12
  end
36
13
 
37
14
  def store_updates(switch)
@@ -88,6 +65,15 @@ module LucidComponent
88
65
  end
89
66
  end
90
67
 
68
+ # stores
69
+ def local_store
70
+ LocalStore
71
+ end
72
+
73
+ def session_store
74
+ SessionStore
75
+ end
76
+
91
77
  # styles
92
78
  def styles
93
79
  props.classes
@@ -1,46 +1,37 @@
1
1
  module LucidComponent
2
2
  class AppStoreProxy
3
3
  def initialize(component_instance)
4
- @native = component_instance.to_n
5
- @component_instance = component_instance
4
+ if component_instance
5
+ @native = component_instance.to_n
6
+ @component_instance = component_instance
7
+ end
8
+ end
9
+
10
+ def [](key)
11
+ method_missing(key)
12
+ end
13
+
14
+ def []=(key, value)
15
+ method_missing(key, value)
6
16
  end
7
17
 
8
18
  def method_missing(key, *args, &block)
9
19
  if `args.length > 0`
10
20
  # set class state, simply a dispatch
11
21
  action = { type: 'APPLICATION_STATE', name: (`key.endsWith('=')` ? key.chop : key), value: args[0] }
12
- Isomorfeus.store.dispatch(action)
22
+ Isomorfeus.store.collect_and_defer_dispatch(action)
13
23
  else
14
24
  # check if we have a component local state value
15
- if `#@native.props.store`
25
+ if @native && `#@native.props.store`
16
26
  if `#@native.props.store.application_state && #@native.props.store.application_state.hasOwnProperty(key)`
17
27
  return @native.JS[:props].JS[:store].JS[:application_state].JS[key]
18
28
  end
19
29
  else
20
- a_state = Isomorfeus.store.get_state
21
- if a_state.key?(:application_state) && a_state[:application_state].key?(key)
22
- return a_state[:application_state][key]
23
- end
24
- end
25
- if @component_instance.class.default_app_store_defined && @component_instance.class.app_store.to_h.key?(key)
26
- # check if a default value was given
27
- return @component_instance.class.app_store.to_h[key]
30
+ return AppStore[key]
28
31
  end
29
32
  # otherwise return nil
30
33
  return nil
31
34
  end
32
35
  end
33
-
34
- def dispatch(action)
35
- Isomorfeus.store.dispatch(action)
36
- end
37
-
38
- def subscribe(&block)
39
- Isomorfeus.store.subscribe(&block)
40
- end
41
-
42
- def unsubscribe(unsubscriber)
43
- `unsubscriber()`
44
- end
45
36
  end
46
37
  end
@@ -1,50 +1,44 @@
1
1
  module LucidComponent
2
2
  class ClassStoreProxy
3
- def initialize(component_instance)
4
- @native = component_instance.to_n
5
- @component_instance = component_instance
6
- @component_name = component_instance.class.to_s
3
+ def initialize(component_name, component_instance = nil, native = nil)
4
+ @component_name = component_name
5
+ if component_instance
6
+ @native = native
7
+ @component_instance = component_instance
8
+ end
9
+ end
10
+
11
+ def [](key)
12
+ method_missing(key)
13
+ end
14
+
15
+ def []=(key, value)
16
+ method_missing(key, value)
7
17
  end
8
18
 
9
19
  def method_missing(key, *args, &block)
10
20
  if `args.length > 0`
11
21
  # set class state, simply a dispatch
12
- action = { type: 'COMPONENT_CLASS_STATE', class: @component_name, name: (`key.endsWith('=')` ? key.chop : key), value: args[0] }
13
- Isomorfeus.store.dispatch(action)
22
+ action = { type: 'CLASS_STATE', class: @component_name, name: (`key.endsWith('=')` ? key.chop : key), value: args[0] }
23
+ Isomorfeus.store.collect_and_defer_dispatch(action)
14
24
  else
15
25
  # get class state
16
26
  # check if we have a component local state value
17
- if @native.JS[:props].JS[:store]
18
- if @native.JS[:props].JS[:store].JS[:component_class_state] &&
19
- @native.JS[:props].JS[:store].JS[:component_class_state].JS[@component_name] &&
20
- @native.JS[:props].JS[:store].JS[:component_class_state].JS[@component_name].JS.hasOwnProperty(key)
21
- return @native.JS[:props].JS[:store].JS[:component_class_state].JS[@component_name].JS[key]
27
+ if @native && @native.JS[:props].JS[:store]
28
+ if @native.JS[:props].JS[:store].JS[:class_state] &&
29
+ @native.JS[:props].JS[:store].JS[:class_state].JS[@component_name] &&
30
+ @native.JS[:props].JS[:store].JS[:class_state].JS[@component_name].JS.hasOwnProperty(key)
31
+ return @native.JS[:props].JS[:store].JS[:class_state].JS[@component_name].JS[key]
22
32
  end
23
33
  else
24
34
  a_state = Isomorfeus.store.get_state
25
- if a_state.key?(:component_class_state) && a_state[:component_class_state].key?(key)
26
- return a_state[:component_class_state][key]
35
+ if a_state.key?(:class_state) && a_state[:class_state].key?(@component_name) && a_state[:class_state][@component_name].key?(key)
36
+ return a_state[:class_state][@component_name][key]
27
37
  end
28
38
  end
29
- if @component_instance.class.default_class_store_defined && @component_instance.class.class_store.to_h.key?(key)
30
- # check if a default value was given
31
- return @component_instance.class.class_store.to_h[key]
32
- end
33
39
  # otherwise return nil
34
40
  return nil
35
41
  end
36
42
  end
37
-
38
- def dispatch(action)
39
- Isomorfeus.store.dispatch(action)
40
- end
41
-
42
- def subscribe(&block)
43
- Isomorfeus.store.subscribe(&block)
44
- end
45
-
46
- def unsubscribe(unsubscriber)
47
- `unsubscriber()`
48
- end
49
43
  end
50
44
  end
@@ -3,10 +3,12 @@ module LucidComponent
3
3
  def initialize(native_component)
4
4
  @native = native_component
5
5
  @app_store = LucidComponent::AppStoreProxy.new(self)
6
- @class_store = LucidComponent::ClassStoreProxy.new(self)
6
+ @class_store = LucidComponent::ClassStoreProxy.new(self.class.to_s, self, @native)
7
+ # @iso_store = Isomorfeus::IsomorphicStoreProxy.new(self)
8
+ # @local_store = Isomorfeus::LocalStoreProxy.new(self)
9
+ @store = LucidComponent::InstanceStoreProxy.new(self)
7
10
  @props = `Opal.React.Component.Props.$new(#@native)`
8
11
  @state = `Opal.React.Component.State.$new(#@native)`
9
- @store = LucidComponent::InstanceStoreProxy.new(self)
10
12
  end
11
13
  end
12
14
  end
@@ -6,50 +6,39 @@ module LucidComponent
6
6
  @component_object_id = component_instance.object_id.to_s
7
7
  end
8
8
 
9
+ def [](key)
10
+ method_missing(key)
11
+ end
12
+
13
+ def []=(key, value)
14
+ method_missing(key, value)
15
+ end
16
+
9
17
  def method_missing(key, *args, &block)
10
18
  if `args.length > 0`
11
19
  # set instance state, simply a dispatch
12
20
 
13
- action = { type: 'COMPONENT_STATE', object_id: @component_object_id, name: (`key.endsWith('=')` ? key.chop : key), value: args[0] }
14
- Isomorfeus.store.dispatch(action)
21
+ action = { type: 'INSTANCE_STATE', object_id: @component_object_id, name: (`key.endsWith('=')` ? key.chop : key), value: args[0] }
22
+ Isomorfeus.store.collect_and_defer_dispatch(action)
15
23
 
16
24
  else
17
25
  # get instance state
18
-
19
26
  if @native.JS[:props].JS[:store]
20
- if @native.JS[:props].JS[:store].JS[:component_state] &&
21
- @native.JS[:props].JS[:store].JS[:component_state].JS[@component_object_id] &&
22
- @native.JS[:props].JS[:store].JS[:component_state].JS[@component_object_id].JS.hasOwnProperty(key)
27
+ if @native.JS[:props].JS[:store].JS[:instance_state] &&
28
+ @native.JS[:props].JS[:store].JS[:instance_state].JS[@component_object_id] &&
29
+ @native.JS[:props].JS[:store].JS[:instance_state].JS[@component_object_id].JS.hasOwnProperty(key)
23
30
  # check if we have a component local state value
24
- return @native.JS[:props].JS[:store].JS[:component_state].JS[@component_object_id].JS[key]
31
+ return @native.JS[:props].JS[:store].JS[:instance_state].JS[@component_object_id].JS[key]
25
32
  end
26
33
  else
27
34
  a_state = Isomorfeus.store.get_state
28
- if a_state.key?(:component_state) && a_state[:component_state].key?(key)
29
- return a_state[:component_state][key]
35
+ if a_state.key?(:instance_state) && a_state[:instance_state].key?(key)
36
+ return a_state[:instance_state][key]
30
37
  end
31
38
  end
32
-
33
- if @component_instance.class.default_instance_store_defined && @component_instance.class.store.to_h.key?(key)
34
- # check if a default value was given
35
- return @component_instance.class.store.to_h[key]
36
- end
37
-
38
39
  # otherwise return nil
39
40
  return nil
40
41
  end
41
42
  end
42
-
43
- def dispatch(action)
44
- Isomorfeus.store.dispatch(action)
45
- end
46
-
47
- def subscribe(&block)
48
- Isomorfeus.store.subscribe(&block)
49
- end
50
-
51
- def unsubscribe(unsubscriber)
52
- `unsubscriber()`
53
- end
54
43
  end
55
44
  end
@@ -5,8 +5,6 @@ module LucidComponent
5
5
  base.extend(::LucidComponent::NativeLucidComponentConstructor)
6
6
  base.extend(::LucidComponent::NativeComponentConstructor)
7
7
  base.extend(::LucidPropDeclaration::Mixin)
8
- base.extend(::Isomorfeus::ExecutionEnvironmentHelpers)
9
- base.include(::Isomorfeus::ExecutionEnvironmentHelpers)
10
8
  base.include(::React::Component::Elements)
11
9
  base.include(::React::Component::Api)
12
10
  base.include(::React::Component::Callbacks)
@@ -17,11 +17,6 @@ module LucidComponent
17
17
  this.state = {};
18
18
  };
19
19
  this.__ruby_instance = base.$new(this);
20
- this.__object_id = this.__ruby_instance.$object_id().$to_s();
21
- if (!this.state.component_state) {
22
- this.state.component_state = {};
23
- this.state.component_state[this.__object_id] = {};
24
- };
25
20
  var defined_refs = #{base.defined_refs};
26
21
  for (var ref in defined_refs) {
27
22
  if (defined_refs[ref] != null) {
@@ -4,7 +4,7 @@ module LucidFunc
4
4
  self.JS[:native_props] = `{ props: null }`
5
5
  @native_props = `Opal.React.Component.Props.$new(#{self})`
6
6
  @app_store = LucidComponent::AppStoreProxy.new(self)
7
- @class_store = LucidComponent::ClassStoreProxy.new(self)
7
+ @class_store = LucidComponent::ClassStoreProxy.new(self.class.to_s, self, self)
8
8
  @store = LucidComponent::InstanceStoreProxy.new(self)
9
9
  end
10
10
  end
@@ -5,8 +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.extend(::Isomorfeus::ExecutionEnvironmentHelpers)
9
- base.include(::Isomorfeus::ExecutionEnvironmentHelpers)
10
8
  base.extend(::LucidFunc::NativeComponentConstructor)
11
9
  base.include(::LucidComponent::Api)
12
10
  end
@@ -6,8 +6,6 @@ module LucidMaterial
6
6
  base.extend(::LucidApp::NativeLucidComponentConstructor)
7
7
  base.extend(::LucidMaterial::App::NativeComponentConstructor)
8
8
  base.extend(::LucidPropDeclaration::Mixin)
9
- base.extend(::Isomorfeus::ExecutionEnvironmentHelpers)
10
- base.include(::Isomorfeus::ExecutionEnvironmentHelpers)
11
9
  base.include(::React::Component::Elements)
12
10
  base.include(::React::Component::Api)
13
11
  base.include(::React::Component::Callbacks)
@@ -6,8 +6,6 @@ module LucidMaterial
6
6
  base.extend(::LucidComponent::NativeLucidComponentConstructor)
7
7
  base.extend(::LucidMaterial::Component::NativeComponentConstructor)
8
8
  base.extend(::LucidPropDeclaration::Mixin)
9
- base.extend(::Isomorfeus::ExecutionEnvironmentHelpers)
10
- base.include(::Isomorfeus::ExecutionEnvironmentHelpers)
11
9
  base.include(::React::Component::Elements)
12
10
  base.include(::React::Component::Api)
13
11
  base.include(::React::Component::Callbacks)
@@ -6,8 +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.extend(::Isomorfeus::ExecutionEnvironmentHelpers)
10
- base.include(::Isomorfeus::ExecutionEnvironmentHelpers)
11
9
  base.extend(::LucidMaterial::Func::NativeComponentConstructor)
12
10
  base.include(::LucidComponent::Api)
13
11
  end
@@ -1,3 +1,3 @@
1
1
  module React
2
- VERSION = '16.12.24'
2
+ VERSION = '16.13.0'
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.24
4
+ version: 16.13.0
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-26 00:00:00.000000000 Z
11
+ date: 2020-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0
19
+ version: 1.1.6
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1.0
26
+ version: 1.1.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: oj
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '3.10'
33
+ version: 3.10.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '3.10'
40
+ version: 3.10.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: opal
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 4.0.21
103
+ version: 4.0.22
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 4.0.21
110
+ version: 4.0.22
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: isomorfeus-speednode
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 0.3.4
145
+ version: 0.3.5
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 0.3.4
152
+ version: 0.3.5
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rake
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -210,12 +210,9 @@ files:
210
210
  - lib/isomorfeus_react/lucid_app/native_component_constructor.rb
211
211
  - lib/isomorfeus_react/lucid_app/native_lucid_component_constructor.rb
212
212
  - lib/isomorfeus_react/lucid_component/api.rb
213
- - lib/isomorfeus_react/lucid_component/app_store_defaults.rb
214
213
  - lib/isomorfeus_react/lucid_component/app_store_proxy.rb
215
214
  - lib/isomorfeus_react/lucid_component/base.rb
216
215
  - lib/isomorfeus_react/lucid_component/class_store_proxy.rb
217
- - lib/isomorfeus_react/lucid_component/component_class_store_defaults.rb
218
- - lib/isomorfeus_react/lucid_component/component_instance_store_defaults.rb
219
216
  - lib/isomorfeus_react/lucid_component/initializer.rb
220
217
  - lib/isomorfeus_react/lucid_component/instance_store_proxy.rb
221
218
  - lib/isomorfeus_react/lucid_component/mixin.rb
@@ -243,7 +240,6 @@ files:
243
240
  - lib/isomorfeus_react_material/lucid_material/func/mixin.rb
244
241
  - lib/isomorfeus_react_material/lucid_material/func/native_component_constructor.rb
245
242
  - lib/lucid_app/context.rb
246
- - lib/lucid_app/reducers.rb
247
243
  - lib/lucid_prop_declaration/mixin.rb
248
244
  - lib/react.rb
249
245
  - lib/react/children.rb
@@ -1,36 +0,0 @@
1
- module LucidComponent
2
- class AppStoreDefaults
3
- def initialize(state, component_name)
4
- @state = state
5
- if @state.isomorfeus_store
6
- @state.isomorfeus_store.merge!(application_state: {})
7
- else
8
- @state.isomorfeus_store = { application_state: {}}
9
- end
10
- end
11
-
12
- def method_missing(key, *args, &block)
13
- if `args.length > 0`
14
- # set initial class state
15
- key = key.chop if `key.endsWith('=')`
16
- @state.isomorfeus_store[:application_state][key] = args[0]
17
- current_state = Isomorfeus.store.get_state
18
- if !(current_state[:application_state].key?(key))
19
- Isomorfeus.store.dispatch(type: 'APPLICATION_STATE', name: key, value: args[0])
20
- end
21
- else
22
- # get class state
23
-
24
- # check if we have a component local state value
25
- if @state.isomorfeus_store[:application_state].key?(key)
26
- return @state.isomorfeus_store[:application_state][key]
27
- end
28
- end
29
- nil
30
- end
31
-
32
- def to_h
33
- @state.isomorfeus_store[:application_state]
34
- end
35
- end
36
- end
@@ -1,38 +0,0 @@
1
- module LucidComponent
2
- class ComponentClassStoreDefaults
3
- def initialize(state, component_name)
4
- @state = state
5
- @component_name = component_name
6
- if @state.isomorfeus_store
7
- @state.isomorfeus_store.merge!(component_class_state: { @component_name => {} })
8
- else
9
- @state.isomorfeus_store = { component_class_state: { @component_name => {} } }
10
- end
11
- end
12
-
13
- def method_missing(key, *args, &block)
14
- if `args.length > 0`
15
- # set initial class state
16
- key = key.chop if `key.endsWith('=')`
17
- @state.isomorfeus_store[:component_class_state][@component_name][key] = args[0]
18
- current_state = Isomorfeus.store.get_state
19
- if !(current_state[:component_class_state].key?(@component_name) && current_state[:component_class_state][@component_name].key?(key))
20
- Isomorfeus.store.dispatch(type: 'COMPONENT_CLASS_STATE', class: @component_name, name: key, value: args[0])
21
- end
22
- else
23
- # get class state
24
-
25
- # check if we have a component local state value
26
-
27
- if @state.isomorfeus_store[:component_class_state][@component_name].key?(key)
28
- return @state.isomorfeus_store[:component_class_state][@component_name][key]
29
- end
30
- end
31
- nil
32
- end
33
-
34
- def to_h
35
- @state.isomorfeus_store[:component_class_state][@component_name]
36
- end
37
- end
38
- end
@@ -1,35 +0,0 @@
1
- module LucidComponent
2
- class ComponentInstanceStoreDefaults
3
- def initialize(state, component_name)
4
- @state = {}
5
- @component_name = component_name
6
- end
7
-
8
- def method_missing(key, *args, &block)
9
- if `args.length > 0`
10
- # set initial class state
11
- key = key.chop if `key.endsWith('=')`
12
- @state[key] = args[0]
13
- current_state = Isomorfeus.store.get_state
14
- if !(current_state[:component_state].key?(@component_name) &&
15
- current_state[:component_state][@component_name].key?(:instance_defaults) &&
16
- current_state[:component_state][@component_name][:instance_defaults].key?(key))
17
- Isomorfeus.store.dispatch(type: 'COMPONENT_CLASS_STATE', class: @component_name, name: :instance_defaults, value: { key => args[0]})
18
- end
19
- else
20
- # get class state
21
-
22
- # check if we have a component local state value
23
-
24
- if @state.key?(key)
25
- return @state[key]
26
- end
27
- end
28
- nil
29
- end
30
-
31
- def to_h
32
- @state
33
- end
34
- end
35
- end
@@ -1,48 +0,0 @@
1
- module LucidApp
2
- module Reducers
3
- class << self
4
- attr_reader :component_reducers_added
5
-
6
- def add_component_reducers_to_store
7
- unless component_reducers_added
8
- @_component_reducers_added = true
9
- component_reducer = Redux.create_reducer do |prev_state, action|
10
- case action[:type]
11
- when 'COMPONENT_STATE'
12
- if action.key?(:set_state)
13
- action[:set_state]
14
- else
15
- new_state = {}.merge!(prev_state) # make a copy of state
16
- new_state[action[:object_id]] = {} unless new_state.key?(action[:object_id])
17
- new_state[action[:object_id]].merge!(action[:name] => action[:value])
18
- # new_state == prev_state ? prev_state : new_state
19
- new_state
20
- end
21
- else
22
- prev_state
23
- end
24
- end
25
-
26
- component_class_reducer = Redux.create_reducer do |prev_state, action|
27
- case action[:type]
28
- when 'COMPONENT_CLASS_STATE'
29
- if action.key?(:set_state)
30
- action[:set_state]
31
- else
32
- new_state = {}.merge!(prev_state) # make a copy of state
33
- new_state[action[:class]] = {} unless new_state.key?(action[:class])
34
- new_state[action[:class]].merge!(action[:name] => action[:value])
35
- # new_state == prev_state ? prev_state : new_state
36
- new_state
37
- end
38
- else
39
- prev_state
40
- end
41
- end
42
- Redux::Store.preloaded_state_merge!(component_state: {}, component_class_state: {})
43
- Redux::Store.add_reducers(component_state: component_reducer, component_class_state: component_class_reducer)
44
- end
45
- end
46
- end
47
- end
48
- end