UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

27 lines (26 loc) 866 B
"use client"; import { useCallback, useContext } from 'react'; import { createReferenceKey, useSharedState } from '../../../shared/helpers/useSharedState'; import DataContext from '../DataContext/Context'; export default function useDataContext() { let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; const { get } = useSharedState(createReferenceKey(id, 'data-context')); 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 get(); }, [dataContext, id, get]); return { getContext, dataContext }; } //# sourceMappingURL=useDataContext.js.map