Skip to content

Commit 38036d6

Browse files
committed
Revert "add parent and children for useId"
This reverts commit 78f365f.
1 parent 78f365f commit 38036d6

File tree

5 files changed

+59
-89
lines changed

5 files changed

+59
-89
lines changed

.changeset/young-cougars-protect.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

package-lock.json

Lines changed: 15 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/constants.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ export const SKIP_EFFECTS = '__s';
77

88
// VNode properties
99
export const COMPONENT = '__c';
10-
export const PARENT = '__';
11-
export const CHILDREN = '__k';
1210

1311
// Component properties
1412
export const VNODE = '__v';

src/index.js

Lines changed: 44 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ import {
1818
NEXT_STATE,
1919
RENDER,
2020
SKIP_EFFECTS,
21-
VNODE,
22-
PARENT,
23-
CHILDREN
21+
VNODE
2422
} from './constants';
2523

2624
/** @typedef {import('preact').VNode} VNode */
@@ -74,7 +72,7 @@ function renderToString(vnode, context, opts) {
7472
) {
7573
res = _renderToStringPretty(vnode, context, opts);
7674
} else {
77-
res = _renderToString(vnode, context, false, undefined, vnode);
75+
res = _renderToString(vnode, context, false, undefined);
7876
}
7977

8078
// options._commit, we don't schedule any effects in this library right now,
@@ -183,7 +181,7 @@ const isArray = Array.isArray;
183181
const assign = Object.assign;
184182

185183
/** The default export is an alias of `render()`. */
186-
function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
184+
function _renderToString(vnode, context, isSvgMode, selectValue) {
187185
if (vnode == null || vnode === true || vnode === false || vnode === '') {
188186
return '';
189187
}
@@ -195,15 +193,9 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
195193

196194
if (isArray(vnode)) {
197195
let rendered = '';
198-
parent[CHILDREN] = [];
199196
for (let i = 0; i < vnode.length; i++) {
200-
if (typeof vnode[i] === 'object' && parent) {
201-
vnode[i][PARENT] = parent;
202-
parent[CHILDREN].push(vnode[i]);
203-
}
204197
rendered =
205-
rendered +
206-
_renderToString(vnode[i], context, isSvgMode, selectValue, parent);
198+
rendered + _renderToString(vnode[i], context, isSvgMode, selectValue);
207199
}
208200
return rendered;
209201
}
@@ -214,14 +206,12 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
214206

215207
// components
216208
if (isComponent) {
217-
vnode[PARENT] = parent;
218209
if (nodeName === Fragment) {
219210
return _renderToString(
220211
vnode.props.children,
221212
context,
222213
isSvgMode,
223-
selectValue,
224-
vnode
214+
selectValue
225215
);
226216
}
227217

@@ -241,8 +231,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
241231

242232
if (options[DIFFED]) options[DIFFED](vnode);
243233

244-
vnode[CHILDREN] = Array.isArray(rendered) ? rendered : [rendered];
245-
return _renderToString(rendered, context, isSvgMode, selectValue, vnode);
234+
return _renderToString(rendered, context, isSvgMode, selectValue);
246235
}
247236

248237
// render JSX to HTML
@@ -257,6 +246,36 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
257246
for (let name in props) {
258247
let v = props[name];
259248

249+
// switch (name) {
250+
// case 'className':
251+
// if ('class' in props) continue;
252+
// name = 'class';
253+
// break;
254+
// case 'htmlFor':
255+
// if ('for' in props) continue;
256+
// name = 'for';
257+
// break;
258+
// case 'defaultValue':
259+
// name = 'value';
260+
// break;
261+
// case 'defaultChecked':
262+
// name = 'checked';
263+
// break;
264+
// case 'defaultSelected':
265+
// name = 'selected';
266+
// break;
267+
// case 'key':
268+
// case 'ref':
269+
// case '__self':
270+
// case '__source':
271+
// case 'children':
272+
// continue;
273+
// default:
274+
// if (isSvgMode && XLINK.test(name)) {
275+
// name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');
276+
// }
277+
// }
278+
260279
if (
261280
name === 'key' ||
262281
name === 'ref' ||
@@ -316,6 +335,11 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
316335
let pieces = '';
317336
let hasChildren = false;
318337

338+
// let children = isArray(propChildren)
339+
// ? propChildren
340+
// : propChildren != null
341+
// ? [propChildren]
342+
// : undefined;
319343
if (html) {
320344
// return s + html + '</' + nodeName + '>';
321345
// s = s + html;
@@ -326,24 +350,13 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
326350
pieces = pieces + encodeEntities(children);
327351
hasChildren = true;
328352
} else if (isArray(children)) {
329-
vnode[CHILDREN] = [];
330-
331353
for (let i = 0; i < children.length; i++) {
332354
let child = children[i];
333-
vnode[CHILDREN].push(child);
355+
334356
if (child != null && child !== false) {
335-
if (typeof child === 'object') {
336-
child[PARENT] = vnode;
337-
}
338357
let childSvgMode =
339358
nodeName === 'svg' || (nodeName !== 'foreignObject' && isSvgMode);
340-
let ret = _renderToString(
341-
child,
342-
context,
343-
childSvgMode,
344-
selectValue,
345-
vnode
346-
);
359+
let ret = _renderToString(child, context, childSvgMode, selectValue);
347360

348361
// Skip if we received an empty string
349362
if (ret) {
@@ -354,19 +367,9 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
354367
}
355368
}
356369
} else if (children != null && children !== false && children !== true) {
357-
vnode[CHILDREN] = [children];
358-
if (typeof children === 'object') {
359-
children[PARENT] = vnode;
360-
}
361370
let childSvgMode =
362371
nodeName === 'svg' || (nodeName !== 'foreignObject' && isSvgMode);
363-
let ret = _renderToString(
364-
children,
365-
context,
366-
childSvgMode,
367-
selectValue,
368-
vnode
369-
);
372+
let ret = _renderToString(children, context, childSvgMode, selectValue);
370373

371374
// Skip if we received an empty string
372375
if (ret) {

test/render.test.js

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,45 +19,6 @@ describe('render', () => {
1919
expect(rendered).to.equal(expected);
2020
});
2121

22-
describe('setting vnode properties', () => {
23-
it('sets the parent and children attributes for normal nodes', () => {
24-
const paragraph = <p>hi</p>;
25-
const root = <div>{paragraph}</div>;
26-
const rendered = render(root);
27-
28-
expect(rendered).to.equal(`<div><p>hi</p></div>`);
29-
expect(root.__k).to.deep.equal([paragraph]);
30-
expect(paragraph.__).to.deep.equal(root);
31-
});
32-
33-
it('sets the parent and children attributes for functions', () => {
34-
const Root = () => <p>hi</p>;
35-
const root = <Root />;
36-
const wrapper = <div>{root}</div>;
37-
const rendered = render(wrapper);
38-
39-
expect(rendered).to.equal(`<div><p>hi</p></div>`);
40-
expect(wrapper.__k).to.deep.equal([root]);
41-
expect(root.__).to.deep.equal(wrapper);
42-
});
43-
44-
it('sets the parent and children attributes for nested functions', () => {
45-
const Root = (props) => props.children;
46-
const Child = () => (
47-
<div>
48-
<p>hi</p>
49-
</div>
50-
);
51-
const child = <Child />;
52-
const root = <Root>{child}</Root>;
53-
const rendered = render(root);
54-
55-
expect(rendered).to.equal(`<div><p>hi</p></div>`);
56-
expect(root.__k).to.deep.equal([child]);
57-
expect(child.__).to.deep.equal(root);
58-
});
59-
});
60-
6122
describe('whitespace', () => {
6223
it('should omit whitespace between elements', () => {
6324
let children = [];

0 commit comments

Comments
 (0)