dynamic-modal
Version:
The dynamic-modal is a solution of creation different modals into project using a json configuration file
39 lines (38 loc) • 1.45 kB
JavaScript
'use client';
;
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const general_util_1 = require("../util/general/general.util");
const useEnableIf = ({ elementEnableIf }) => {
const [enable, setEnable] = (0, react_1.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 (0, general_util_1.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,
};
};
exports.default = useEnableIf;