UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

54 lines (53 loc) 2.05 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useDataWithoutSubscription; var _react = require("react"); var _useSharedState = require("../../../../shared/helpers/useSharedState.js"); var _Context = require("../../DataContext/Context.js"); var _DataContextRefContext = _interopRequireDefault(require("../../DataContext/DataContextRefContext.js")); var _useData = require("./useData.js"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function useDataWithoutSubscription(id = undefined, initialData = undefined) { var _dataContextRef$curre; const sharedDataRef = (0, _react.useRef)(null); const sharedAttachmentsRef = (0, _react.useRef)(null); sharedDataRef.current = id ? (0, _useSharedState.createSharedState)(id, initialData) : null; sharedAttachmentsRef.current = id ? (0, _useSharedState.createSharedState)((0, _useSharedState.createReferenceKey)(id, 'attachments')) : null; const dataContextRef = (0, _react.useContext)(_DataContextRefContext.default); const dataContext = (_dataContextRef$curre = dataContextRef?.current) !== null && _dataContextRef$curre !== void 0 ? _dataContextRef$curre : _Context.defaultContextState; const { remove, update, set, getValue, reduceToVisibleFields, filterData } = (0, _useData.useDataReturn)({ id, initialData, sharedDataRef, sharedAttachmentsRef, dataContext, dataContextRef, errorMessage: 'useDataWithoutSubscription needs to run inside DataContext (Form.Handler) or have a valid id' }); const getData = (0, _react.useCallback)(() => { if (id) { return sharedDataRef.current?.get?.(); } return getValue('/'); }, [getValue, id]); return (0, _react.useMemo)(() => ({ getData, remove, update, set, getValue, reduceToVisibleFields, filterData }), [getData, remove, update, set, getValue, reduceToVisibleFields, filterData]); } //# sourceMappingURL=useDataWithoutSubscription.js.map