Skip to content

Commit beb032e

Browse files
authored
fix(Grid): support React.Fragment as children (#3850)
1 parent 4aa8c3e commit beb032e

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

packages/main/src/components/Grid/index.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { useViewportRange } from '@ui5/webcomponents-react-base';
22
import clsx from 'clsx';
3-
import React, { Children, CSSProperties, forwardRef, ReactElement, ReactNode } from 'react';
3+
import React, { CSSProperties, forwardRef, ReactNode } from 'react';
44
import { createUseStyles } from 'react-jss';
55
import { GridPosition } from '../../enums/GridPosition';
66
import { CommonProps } from '../../interfaces/CommonProps';
7+
import { flattenFragments } from '../../internal/utils';
78
import { styles } from './Grid.jss';
89

910
export interface GridPropTypes extends CommonProps {
@@ -92,8 +93,10 @@ const Grid = forwardRef<HTMLDivElement, GridPropTypes>((props, ref) => {
9293
slot={slot}
9394
{...rest}
9495
>
95-
{Children.map(children, (child: ReactElement<any>) => {
96-
if (!child) return null;
96+
{flattenFragments(children, Infinity).map((child) => {
97+
if (!React.isValidElement(child)) {
98+
return null;
99+
}
97100

98101
const childSpan = getSpanFromString(child.props['data-layout-span'] ?? defaultSpan, currentRange);
99102
const childClass = classes[`gridSpan${childSpan}`];

0 commit comments

Comments
 (0)