isomorfeus-preact 10.7.1 → 10.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lucid_prop_declaration/mixin.rb +3 -3
  3. data/lib/preact/version.rb +1 -1
  4. data/node_modules/.package-lock.json +6 -6
  5. data/node_modules/preact/README.md +39 -38
  6. data/node_modules/preact/compat/dist/compat.js +1 -1
  7. data/node_modules/preact/compat/dist/compat.js.map +1 -1
  8. data/node_modules/preact/compat/dist/compat.mjs +1 -1
  9. data/node_modules/preact/compat/dist/compat.module.js +1 -1
  10. data/node_modules/preact/compat/dist/compat.module.js.map +1 -1
  11. data/node_modules/preact/compat/dist/compat.umd.js +1 -1
  12. data/node_modules/preact/compat/dist/compat.umd.js.map +1 -1
  13. data/node_modules/preact/compat/src/index.d.ts +15 -1
  14. data/node_modules/preact/compat/src/portals.js +3 -1
  15. data/node_modules/preact/devtools/dist/devtools.js +1 -1
  16. data/node_modules/preact/devtools/dist/devtools.js.map +1 -1
  17. data/node_modules/preact/devtools/dist/devtools.mjs +1 -1
  18. data/node_modules/preact/devtools/dist/devtools.module.js +1 -1
  19. data/node_modules/preact/devtools/dist/devtools.module.js.map +1 -1
  20. data/node_modules/preact/devtools/dist/devtools.umd.js +1 -1
  21. data/node_modules/preact/devtools/dist/devtools.umd.js.map +1 -1
  22. data/node_modules/preact/devtools/src/devtools.js +1 -1
  23. data/node_modules/preact/package.json +7 -1
  24. data/node_modules/preact/src/index.d.ts +3 -0
  25. data/node_modules/preact/src/jsx.d.ts +6 -1
  26. data/node_modules/preact/test-utils/dist/testUtils.js +1 -1
  27. data/node_modules/preact/test-utils/dist/testUtils.js.map +1 -1
  28. data/node_modules/preact/test-utils/dist/testUtils.mjs +1 -1
  29. data/node_modules/preact/test-utils/dist/testUtils.module.js +1 -1
  30. data/node_modules/preact/test-utils/dist/testUtils.module.js.map +1 -1
  31. data/node_modules/preact/test-utils/dist/testUtils.umd.js +1 -1
  32. data/node_modules/preact/test-utils/dist/testUtils.umd.js.map +1 -1
  33. data/node_modules/preact/test-utils/src/index.js +2 -1
  34. data/node_modules/preact-render-to-string/dist/commonjs.js +1 -1
  35. data/node_modules/preact-render-to-string/dist/commonjs.js.map +1 -1
  36. data/node_modules/preact-render-to-string/dist/index.js.map +1 -1
  37. data/node_modules/preact-render-to-string/dist/index.mjs +1 -1
  38. data/node_modules/preact-render-to-string/dist/index.module.js +1 -1
  39. data/node_modules/preact-render-to-string/dist/index.module.js.map +1 -1
  40. data/node_modules/preact-render-to-string/dist/jsx-entry.js +1 -1
  41. data/node_modules/preact-render-to-string/dist/jsx-entry.js.map +1 -1
  42. data/node_modules/preact-render-to-string/dist/jsx.js.map +1 -1
  43. data/node_modules/preact-render-to-string/dist/jsx.mjs +1 -1
  44. data/node_modules/preact-render-to-string/dist/jsx.modern.js +1 -1
  45. data/node_modules/preact-render-to-string/dist/jsx.modern.js.map +1 -1
  46. data/node_modules/preact-render-to-string/dist/jsx.module.js +1 -1
  47. data/node_modules/preact-render-to-string/dist/jsx.module.js.map +1 -1
  48. data/node_modules/preact-render-to-string/package.json +1 -1
  49. data/node_modules/preact-render-to-string/src/index.js +23 -6
  50. data/package.json +2 -2
  51. metadata +2 -2
@@ -19,7 +19,9 @@ const VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|sou
19
19
 
20
20
  const UNSAFE_NAME = /[\s\n\\/='"\0<>]/;
21
21
 
22
- const noop = () => {};
22
+ function markAsDirty() {
23
+ this.__d = true;
24
+ }
23
25
 
24
26
  /** Render Preact JSX + Components to an HTML string.
25
27
  * @name render
@@ -124,8 +126,9 @@ function _renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
124
126
  context,
125
127
  props: vnode.props,
126
128
  // silently drop state updates
127
- setState: noop,
128
- forceUpdate: noop,
129
+ setState: markAsDirty,
130
+ forceUpdate: markAsDirty,
131
+ __d: true,
129
132
  // hooks
130
133
  __h: []
131
134
  });
@@ -134,7 +137,7 @@ function _renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
134
137
  if (options.__b) options.__b(vnode);
135
138
 
136
139
  // options._render
137
- if (options.__r) options.__r(vnode);
140
+ let renderHook = options.__r;
138
141
 
139
142
  if (
140
143
  !nodeName.prototype ||
@@ -151,8 +154,20 @@ function _renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
151
154
  : cxType.__
152
155
  : context;
153
156
 
154
- // stateless functional components
155
- rendered = nodeName.call(vnode.__c, props, cctx);
157
+ // If a hook invokes setState() to invalidate the component during rendering,
158
+ // re-render it up to 25 times to allow "settling" of memoized states.
159
+ // Note:
160
+ // This will need to be updated for Preact 11 to use internal.flags rather than component._dirty:
161
+ // https://github.com/preactjs/preact/blob/d4ca6fdb19bc715e49fd144e69f7296b2f4daa40/src/diff/component.js#L35-L44
162
+ let count = 0;
163
+ while (c.__d && count++ < 25) {
164
+ c.__d = false;
165
+
166
+ if (renderHook) renderHook(vnode);
167
+
168
+ // stateless functional components
169
+ rendered = nodeName.call(vnode.__c, props, cctx);
170
+ }
156
171
  } else {
157
172
  // class-based components
158
173
  let cxType = nodeName.contextType;
@@ -195,6 +210,8 @@ function _renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
195
210
  : c.state;
196
211
  }
197
212
 
213
+ if (renderHook) renderHook(vnode);
214
+
198
215
  rendered = c.render(c.props, c.state, c.context);
199
216
  }
200
217
 
data/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "isomorfeus-preact",
3
3
  "dependencies": {
4
- "preact": "10.7.1",
5
- "preact-render-to-string": "5.1.21",
4
+ "preact": "10.7.2",
5
+ "preact-render-to-string": "5.2.0",
6
6
  "wouter-preact": "2.7.5"
7
7
  }
8
8
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-preact
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.7.1
4
+ version: 10.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-24 00:00:00.000000000 Z
11
+ date: 2022-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby