@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
40 lines (39 loc) • 1.61 kB
JavaScript
"use client";
import React, { useCallback, useContext } from 'react';
import SectionContainerContext from '../containers/SectionContainerContext';
import ToolbarContext from '../Toolbar/ToolbarContext';
import { useTranslation } from '../../../hooks';
import { Button } from '../../../../../components';
import { close } from '../../../../../icons';
import useContainerDataStore from './useContainerDataStore';
import FieldBoundaryContext from '../../../DataContext/FieldBoundary/FieldBoundaryContext';
export default function CancelButton() {
const {
onCancel,
setShowError
} = useContext(ToolbarContext) || {};
const {
restoreOriginalData
} = useContainerDataStore();
const {
switchContainerMode
} = useContext(SectionContainerContext) || {};
const {
setShowBoundaryErrors
} = useContext(FieldBoundaryContext) || {};
const translation = useTranslation().SectionEditContainer;
const cancelHandler = useCallback(() => {
setShowError(false);
setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 ? void 0 : setShowBoundaryErrors(false);
restoreOriginalData();
switchContainerMode === null || switchContainerMode === void 0 ? void 0 : switchContainerMode('view');
onCancel === null || onCancel === void 0 ? void 0 : onCancel();
}, [onCancel, restoreOriginalData, setShowBoundaryErrors, setShowError, switchContainerMode]);
return React.createElement(Button, {
variant: "tertiary",
icon: close,
icon_position: "left",
on_click: cancelHandler
}, translation.cancelButton);
}
//# sourceMappingURL=CancelButton.js.map