@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
50 lines (49 loc) • 1.22 kB
JavaScript
;
"use client";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useFieldTransform;
var _react = require("react");
function useFieldTransform({
transformIn,
transformOut,
toInput,
fromInput,
toEvent,
transformValue,
provideAdditionalArgs,
fromExternal,
validateRequired,
valueRef
}) {
const transformers = (0, _react.useRef)({
transformIn,
transformOut,
toInput,
fromInput,
toEvent,
transformValue,
provideAdditionalArgs,
fromExternal,
validateRequired
});
const getEventArgs = (0, _react.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