UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

29 lines (28 loc) 1.31 kB
import type { RefObject } from 'react'; import type { ProvideAdditionalEventArgs } from '../types'; export type TransformerFns<Value> = { transformIn(external: unknown): Value; transformOut(internal: Value, args?: unknown): unknown; toInput(value: Value): Value; fromInput(value: Value): Value; toEvent(value: Value, eventName?: string): Value; transformValue(value: Value, currentValue?: Value): Value; provideAdditionalArgs(value: Value, additionalArgs?: ProvideAdditionalEventArgs): ProvideAdditionalEventArgs; fromExternal(value: Value): Value; validateRequired(value: Value, options: { emptyValue: unknown; required: boolean; isChanged: boolean; error: Error; }): Error | undefined; }; export default function useFieldTransform<Value>({ transformIn, transformOut, toInput, fromInput, toEvent, transformValue, provideAdditionalArgs, fromExternal, validateRequired, valueRef, }: TransformerFns<Value> & { valueRef: RefObject<Value>; }): { transformers: RefObject<TransformerFns<Value>>; getEventArgs: ({ eventName, additionalArgs, overrideValue, }: { eventName: string; additionalArgs: ProvideAdditionalEventArgs; overrideValue?: Value; }) => [Value] | [Value, ProvideAdditionalEventArgs]; };