UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

45 lines (44 loc) 1.11 kB
"use client"; import { useRef, useCallback } from 'react'; export default function useFieldTransform({ transformIn, transformOut, toInput, fromInput, toEvent, transformValue, provideAdditionalArgs, fromExternal, validateRequired, valueRef }) { const transformers = useRef({ transformIn, transformOut, toInput, fromInput, toEvent, transformValue, provideAdditionalArgs, fromExternal, validateRequired }); const getEventArgs = useCallback(({ eventName, additionalArgs, overrideValue = undefined }) => { const value = transformers.current.toEvent(overrideValue !== null && overrideValue !== void 0 ? overrideValue : valueRef.current, eventName); const args = transformers.current.provideAdditionalArgs(value, additionalArgs); const transformedValue = transformers.current.transformOut(value, args); if (typeof args !== 'undefined') { return [transformedValue, args]; } return [transformedValue]; }, []); return { transformers, getEventArgs }; } //# sourceMappingURL=useFieldTransform.js.map