UNPKG

dynamic-modal

Version:

The dynamic-modal is a solution of creation different modals into project using a json configuration file

48 lines (37 loc) 1.2 kB
'use client'; import { IModalLiveDataCondition } from '../interfaces/modal'; import { useState } from 'react'; import { IOption } from '../interfaces/option'; import { liveDataAction } from '../util/general/general.util'; export interface ILiveDataProps { elementLiveData?: IModalLiveDataCondition; } const useLiveData = ({ elementLiveData }: ILiveDataProps) => { const [liveData, setLiveData] = useState<Array<IOption> | undefined>( undefined, ); const checkLiveData = async ( formData: Record<string, unknown>, { name }: Record<'name', string> & Record<'type', string | undefined>, ) => { const targetFieldData = formData[name] as string | number; const liveDataConfig = elementLiveData; const isLiveData: boolean = !!liveDataConfig?.action && !!liveDataConfig.condition; if (!isLiveData) return null; if (liveDataConfig!.condition.includes(name)) { return await liveDataAction( targetFieldData, formData, liveDataConfig!.action, ); } return null; }; return { liveData, checkLiveData, setLiveData, }; }; export default useLiveData;