Skip to content

Commit 95e4bc8

Browse files
committed
Reintroduce Fragment optimization
1 parent b6aa5a7 commit 95e4bc8

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/index.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
assign,
77
getChildren
88
} from './util';
9-
import { options } from 'preact';
9+
import { options, Fragment } from 'preact';
1010

1111
/** @typedef {import('preact').VNode} VNode */
1212

@@ -68,7 +68,6 @@ function _renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
6868
let pretty = opts.pretty,
6969
indentChar = pretty && typeof pretty === 'string' ? pretty : '\t';
7070

71-
// wrap array nodes in Fragment
7271
if (Array.isArray(vnode)) {
7372
let rendered = '';
7473
for (let i = 0; i < vnode.length; i++) {
@@ -94,6 +93,17 @@ function _renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
9493
isComponent = true;
9594
if (opts.shallow && (inner || opts.renderRootComponent === false)) {
9695
nodeName = getComponentName(nodeName);
96+
} else if (nodeName === Fragment) {
97+
const children = [];
98+
getChildren(children, vnode.props.children);
99+
return _renderToString(
100+
children,
101+
context,
102+
opts,
103+
opts.shallowHighOrder !== false,
104+
isSvgMode,
105+
selectValue
106+
);
97107
} else {
98108
let rendered;
99109

0 commit comments

Comments
 (0)