@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
46 lines (45 loc) • 1.75 kB
JavaScript
"use client";
import React, { useCallback, useContext } from 'react';
import SectionContainerContext from "../containers/SectionContainerContext.js";
import ToolbarContext from "../Toolbar/ToolbarContext.js";
import { useTranslation } from "../../../hooks/index.js";
import { Button } from "../../../../../components/index.js";
import { check } from "../../../../../icons/index.js";
import FieldBoundaryContext from "../../../DataContext/FieldBoundary/FieldBoundaryContext.js";
import { jsx as _jsx } from "react/jsx-runtime";
export default function DoneEditButton() {
const {
onDone,
setShowError
} = useContext(ToolbarContext) || {};
const {
switchContainerMode
} = useContext(SectionContainerContext) || {};
const {
hasError,
hasVisibleError,
setShowBoundaryErrors
} = useContext(FieldBoundaryContext) || {};
const translation = useTranslation().SectionEditContainer;
const doneHandler = useCallback(() => {
if (hasError) {
setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 || setShowBoundaryErrors(true);
if (hasVisibleError) {
setShowError(true);
}
} else {
setShowError(false);
setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 || setShowBoundaryErrors(false);
switchContainerMode === null || switchContainerMode === void 0 || switchContainerMode('view');
onDone === null || onDone === void 0 || onDone();
}
}, [hasError, hasVisibleError, onDone, setShowBoundaryErrors, setShowError, switchContainerMode]);
return _jsx(Button, {
variant: "tertiary",
icon: check,
iconPosition: "left",
onClick: doneHandler,
children: translation.doneButton
});
}
//# sourceMappingURL=DoneButton.js.map