UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

51 lines (50 loc) 1.85 kB
"use client"; var _EditButton; import React, { useContext, useMemo } from 'react'; import clsx from 'clsx'; import { convertJsxToString } from "../../../../../shared/component-helper.js"; import { Flex } from "../../../../../components/index.js"; import { Lead } from "../../../../../elements/index.js"; import Toolbar from "../Toolbar/Toolbar.js"; import SectionContainer from "../containers/SectionContainer.js"; import EditButton from "./EditButton.js"; import SectionContainerContext from "../containers/SectionContainerContext.js"; import withComponentMarkers from "../../../../../shared/helpers/withComponentMarkers.js"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; function ViewContainer(props) { const { children, className, title, onEdit, ...restProps } = props || {}; const ariaLabel = useMemo(() => convertJsxToString(title), [title]); const { disableEditing } = useContext(SectionContainerContext) || {}; const childArray = Array.isArray(children) ? children : [children]; const hasToolbar = childArray.some(child => React.isValidElement(child) && child.type === Toolbar); const showDefaultToolbar = !disableEditing && !hasToolbar; return _jsx(SectionContainer, { mode: "view", ariaLabel: ariaLabel, className: clsx('dnb-forms-section-view-block', className), ...restProps, children: _jsxs(Flex.Stack, { children: [title && _jsx(Lead, { size: "basis", children: title }), children, showDefaultToolbar ? _jsx(Toolbar, { onEdit: onEdit, children: _EditButton || (_EditButton = _jsx(EditButton, {})) }) : null] }) }); } ViewContainer.EditButton = EditButton; withComponentMarkers(ViewContainer, { _supportsSpacingProps: true }); export default ViewContainer; //# sourceMappingURL=ViewContainer.js.map