UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

51 lines (50 loc) 2.1 kB
"use client"; import _extends from "@babel/runtime/helpers/esm/extends"; var _Toolbar, _Toolbar2; import React, { useContext, useMemo } from 'react'; import classnames from 'classnames'; import { convertJsxToString } from "../../../../shared/component-helper.js"; import { Lead } from "../../../../elements/index.js"; import ArrayItemArea from "../Array/ArrayItemArea.js"; import IterateItemContext from "../IterateItemContext.js"; import Toolbar from "../Toolbar/index.js"; import EditButton from "./EditButton.js"; import RemoveButton from "./RemoveButton.js"; import { replaceItemNo } from "../ItemNo/index.js"; function ViewContainer(props) { const { children, className, title, toolbar, toolbarVariant, ...restProps } = props || {}; const { index, arrayValue } = useContext(IterateItemContext); const itemTitle = useMemo(() => { return replaceItemNo(title, index); }, [index, title]); let toolbarElement = toolbar; if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) { toolbarElement = _Toolbar || (_Toolbar = React.createElement(Toolbar, null, React.createElement(EditButton, null))); } const hasToolbar = !toolbarElement && React.Children.toArray(children).some(child => { return child?.['type'] === Toolbar; }); return React.createElement(ArrayItemArea, _extends({ mode: "view", ariaLabel: convertJsxToString(itemTitle), className: classnames('dnb-forms-section-view-block', className), toolbarVariant: toolbarVariant }, restProps), itemTitle && React.createElement(Lead, { size: "basis" }, itemTitle), children, hasToolbar ? null : toolbarElement !== null && toolbarElement !== void 0 ? toolbarElement : toolbarVariant !== 'custom' && (_Toolbar2 || (_Toolbar2 = React.createElement(Toolbar, null, React.createElement(EditButton, null), React.createElement(RemoveButton, null))))); } ViewContainer.EditButton = EditButton; ViewContainer.RemoveButton = RemoveButton; ViewContainer._supportsSpacingProps = true; export default ViewContainer; //# sourceMappingURL=ViewContainer.js.map