UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

24 lines (23 loc) 851 B
"use client"; import { useCallback, useContext } from 'react'; import { createReferenceKey, createSharedState } from "../../../shared/helpers/useSharedState.js"; import DataContext from "../DataContext/Context.js"; export default function useDataContext(id = undefined) { const sharedDataContext = id ? createSharedState(createReferenceKey(id, 'data-context')) : null; const dataContext = useContext(DataContext); const getContext = useCallback(() => { if (!id) { if (!dataContext.hasContext) { throw new Error('useDataContext needs to run inside DataContext (Form.Handler) or have a valid id'); } else { return dataContext; } } return sharedDataContext?.get(); }, [dataContext, id, sharedDataContext]); return { getContext, dataContext }; } //# sourceMappingURL=useDataContext.js.map