UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

37 lines (36 loc) 1.82 kB
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, }: { transformIn: TransformerFns<Value>['transformIn']; transformOut: TransformerFns<Value>['transformOut']; toInput: TransformerFns<Value>['toInput']; fromInput: TransformerFns<Value>['fromInput']; toEvent: TransformerFns<Value>['toEvent']; transformValue: TransformerFns<Value>['transformValue']; provideAdditionalArgs: TransformerFns<Value>['provideAdditionalArgs']; fromExternal: TransformerFns<Value>['fromExternal']; validateRequired: TransformerFns<Value>['validateRequired']; valueRef: React.RefObject<Value>; }): { transformers: import("react").RefObject<TransformerFns<Value>>; getEventArgs: ({ eventName, additionalArgs, overrideValue, }: { eventName: string; additionalArgs: ProvideAdditionalEventArgs; overrideValue?: Value; }) => [Value] | [Value, ProvideAdditionalEventArgs]; };