@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
51 lines (50 loc) • 1.85 kB
JavaScript
"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