UNPKG

dynamic-modal

Version:

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

37 lines (36 loc) 1.33 kB
'use client'; import { useState } from 'react'; import { liveDataHandler } from '../util/general/general.util'; const useEnableIf = ({ elementEnableIf }) => { const [enable, setEnable] = useState(() => { return elementEnableIf === undefined; }); const checkEnable = async (formData, { name }) => { const targetFieldData = formData[name]; // if ( // targetFieldData === undefined || // targetFieldData === '' || // targetFieldData === null // ) // return false; const enableIfConfig = elementEnableIf; const isLiveEnable = !!enableIfConfig?.action && !!enableIfConfig.condition; if (isLiveEnable && enableIfConfig.condition.includes(name)) { const enableStatus = await liveDataHandler(targetFieldData, formData, enableIfConfig.action); return enableStatus; } else { const enableConditionList = Object.keys(elementEnableIf); if (enableConditionList.includes(name)) { const enableStatus = enableIfConfig[name].includes(targetFieldData) || enableIfConfig[name].includes('*'); return enableStatus; } } }; return { enable, checkEnable, setEnable, }; }; export default useEnableIf;