UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

46 lines (45 loc) 1.68 kB
"use client"; import _extends from "@babel/runtime-corejs3/helpers/esm/extends"; import React, { useCallback, useContext, useMemo } from 'react'; import classnames from 'classnames'; import Button from "../../../../components/Button.js"; import { add } from "../../../../icons/index.js"; import IterateItemContext from "../IterateItemContext.js"; import PushContainerContext from "./PushContainerContext.js"; import { convertJsxToString } from "../../../../shared/component-helper.js"; function OpenButton(props) { const { className, text, children, ...restProps } = props; const { switchContainerMode } = useContext(IterateItemContext) || {}; const { entries } = useContext(PushContainerContext) || {}; const handleClick = useCallback(() => { switchContainerMode === null || switchContainerMode === void 0 || switchContainerMode('edit'); }, [switchContainerMode]); const content = useMemo(() => { if (children || text) { const str = convertJsxToString(children || text); if (str.includes('{nextItemNo}')) { const nextItemNo = ((entries === null || entries === void 0 ? void 0 : entries.length) || 0) + 1; return str.replace('{nextItemNo}', String(nextItemNo)); } } return children || text; }, [entries === null || entries === void 0 ? void 0 : entries.length, children, text]); return React.createElement(Button, _extends({ className: classnames('dnb-forms-iterate__open-button', className), variant: "secondary", icon: add, icon_position: "left", on_click: handleClick }, restProps), content); } export default OpenButton; //# sourceMappingURL=OpenButton.js.map