UNPKG

nice-ui

Version:

React design system, components, and utilities

34 lines (33 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const PlaceholderLazy_1 = require("../placeholders/PlaceholderLazy"); const PlaceholderContainer_1 = require("../placeholders/PlaceholderContainer"); const { createElement, Fragment } = React; const renderChildren = (renderers, flat, idx, props, context) => { const node = flat.nodes[idx]; if (!node || !node.children) return null; const areChildrenOfRootNode = node.idx === 0; const needToRenderPlaceholders = context.placeholdersAfter && node.children.length > context.placeholdersAfter; let renderLimit = node.children.length; if (areChildrenOfRootNode && needToRenderPlaceholders) { renderLimit = Math.min(context.placeholdersAfter, renderLimit); } const elements = []; for (let i = 0; i < renderLimit; i++) { const idx = node.children[i]; elements.push(createElement(Fragment, { key: idx }, renderers.node(renderers, flat, idx, props, context))); } if (areChildrenOfRootNode && needToRenderPlaceholders) { const lastPlaceholderIndex = Math.min(node.children.length, renderLimit + (props.maxPlaceholders || 20)); const placeholders = []; for (let i = renderLimit; i < lastPlaceholderIndex; i++) { const idx = node.children[i]; placeholders.push(React.createElement(PlaceholderLazy_1.default, { key: idx, idx: idx })); } elements.push(props.to ? (React.createElement(PlaceholderContainer_1.default, { key: "placeholders", to: props.to }, placeholders)) : (React.createElement("div", null, placeholders))); } return elements; }; exports.default = renderChildren;