dynamic-modal
Version:
The dynamic-modal is a solution of creation different modals into project using a json configuration file
29 lines (28 loc) • 1.55 kB
TypeScript
import { FieldValues, UseFormSetValue, UseFormUnregister, UseFormWatch } from 'react-hook-form';
import { IOption } from '../interfaces/option';
import { IModalLiveDataCondition, IModalRenderCondition } from '../interfaces/modal';
type WatchMeta = {
name: string;
type: string | undefined;
};
interface IUseConditionalFieldProps {
watch: UseFormWatch<FieldValues>;
elementName: string;
renderIf?: IModalRenderCondition;
enableIf?: IModalRenderCondition;
liveDataConfig?: IModalLiveDataCondition;
render: boolean;
enable: boolean;
checkRender: (formData: Record<string, unknown>, meta: WatchMeta) => Promise<boolean | undefined | null>;
checkEnable: (formData: Record<string, unknown>, meta: WatchMeta) => Promise<boolean | undefined | null>;
checkLiveData: (formData: Record<string, unknown>, meta: WatchMeta) => Promise<Array<IOption> | undefined | null>;
setRender: (value: boolean) => void;
setEnable: (value: boolean) => void;
setLiveData?: (value: Array<IOption>) => void;
setLiveSearching?: (value: boolean) => void;
unregister?: UseFormUnregister<FieldValues>;
setValue?: UseFormSetValue<FieldValues>;
liveDataResetValue?: string | Array<string>;
}
declare const useConditionalField: ({ watch, elementName, renderIf, enableIf, liveDataConfig, render, enable, checkRender, checkEnable, checkLiveData, setRender, setEnable, setLiveData, setLiveSearching, unregister, setValue, liveDataResetValue, }: IUseConditionalFieldProps) => void;
export default useConditionalField;