isomorfeus-preact 10.7.1 → 10.7.2

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.
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