@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
43 lines (42 loc) • 1.74 kB
JavaScript
"use client";
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
var _EditButton;
import React, { useContext, useMemo } from 'react';
import classnames from 'classnames';
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";
function ViewContainer(props) {
const {
children,
className,
title,
onEdit,
...restProps
} = props || {};
const ariaLabel = useMemo(() => convertJsxToString(title), [title]);
const {
disableEditing
} = useContext(SectionContainerContext) || {};
const hasToolbar = React.Children.toArray(children).some(child => {
return (child === null || child === void 0 ? void 0 : child['type']) === Toolbar;
});
const showDefaultToolbar = !disableEditing && !hasToolbar;
return React.createElement(SectionContainer, _extends({
mode: "view",
ariaLabel: ariaLabel,
className: classnames('dnb-forms-section-view-block', className)
}, restProps), React.createElement(Flex.Stack, null, title && React.createElement(Lead, {
size: "basis"
}, title), children, showDefaultToolbar ? React.createElement(Toolbar, {
onEdit: onEdit
}, _EditButton || (_EditButton = React.createElement(EditButton, null))) : null));
}
ViewContainer.EditButton = EditButton;
ViewContainer._supportsSpacingProps = true;
export default ViewContainer;
//# sourceMappingURL=ViewContainer.js.map