UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

51 lines (50 loc) 1.86 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useContainerDataStore; var _react = require("react"); var _componentHelper = require("../../../../../shared/component-helper.js"); var _Context = _interopRequireDefault(require("../../../DataContext/Context.js")); var _SectionContext = _interopRequireDefault(require("../SectionContext.js")); var _SectionContainerContext = _interopRequireDefault(require("../containers/SectionContainerContext.js")); var _useDataValue = _interopRequireDefault(require("../../../hooks/useDataValue.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function useContainerDataStore() { const valueBackupRef = (0, _react.useRef)(); const { getData, moveValueToPath } = (0, _useDataValue.default)(); const { data: dataFromContext, setData } = (0, _react.useContext)(_Context.default); const { path } = (0, _react.useContext)(_SectionContext.default) || {}; const { containerMode } = (0, _react.useContext)(_SectionContainerContext.default) || {}; (0, _react.useEffect)(() => { if (containerMode === 'edit' && !valueBackupRef.current) { valueBackupRef.current = getData('/', { includeCurrentPath: true }); } if (containerMode === 'view') { valueBackupRef.current = null; } }, [containerMode, getData]); const restoreOriginalData = (0, _react.useCallback)(() => { if (valueBackupRef.current) { const data = (0, _componentHelper.extendDeep)({}, dataFromContext, moveValueToPath(path, valueBackupRef.current)); setData === null || setData === void 0 || setData(data); } }, [dataFromContext, moveValueToPath, path, setData]); return { restoreOriginalData }; } //# sourceMappingURL=useContainerDataStore.js.map