UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

45 lines (44 loc) 1.56 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _componentHelper = require("../../../../shared/component-helper.js"); var _ValueProviderContext = _interopRequireDefault(require("./ValueProviderContext.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function useValueProvider(props) { const { overwriteProps, ...restProps } = props || {}; const nestedContext = (0, _react.useContext)(_ValueProviderContext.default); const inheritedProps = nestedContext?.inheritedContext; const nestedValueProps = (0, _react.useMemo)(() => { if (inheritedProps && Object.keys(inheritedProps).length > 0) { return { ...inheritedProps, ...restProps }; } return restProps; }, [inheritedProps, restProps]); const extend = (0, _react.useCallback)(valueProps => { const key = overwriteProps && valueProps?.path?.split('/')?.pop(); const overwrite = overwriteProps?.[key]; const props = overwrite ? { ...valueProps, ...overwrite } : valueProps; const value = Object.keys(nestedValueProps).length > 0 ? (0, _componentHelper.assignPropsWithContext)(props, nestedValueProps) : props; return value; }, [nestedValueProps, overwriteProps]); return { extend, inheritedProps: restProps, inheritedContext: nestedValueProps }; } var _default = exports.default = useValueProvider; //# sourceMappingURL=useValueProvider.js.map