@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
54 lines (53 loc) • 2.05 kB
JavaScript
;
"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