import { forwardRef, useCallback, useState } from "react"; import { DefaultModal } from "../../../Components/Modal/DefaultModal"; import { Form } from "antd"; import { DropDowns } from "../../../Components/Forms/DropDown"; import { InputField } from "../../../Components/Forms/InputField"; import { getSession, validateSafeInput } from "../../../Services/Others"; import { useDispatch } from "react-redux"; import { Messages } from "../../../Components/Notifications/Messages"; import { DatePic } from '../../../Components/Forms/DatePicker.jsx'; import { getAdmin as getTax } from "../../../Features/Tax/Tax.js"; import { getAdmin, postTax } from "../../../Features/ProductPage/ProductPage.js"; const AddTaxModal = forwardRef(( { open = false, close = () => { }, prodTaxData = [], flag = false, }, ref) => { const dispatch = useDispatch(); console.log(prodTaxData, 'prodTaxData in modal'); const AppId = getSession('AppId'); const CompId = getSession('CompId'); const UserId = getSession('UserId'); const [messageType, setMessageType] = useState(null); const [messageData, setMessageData] = useState(null); const [selectedTaxNameId, setSelectedTaxNameId] = useState(null); const handleTaxNameDropDownChange = async (ConfigId) => { ref.current?.setFieldsValue({ TaxName: ConfigId }); await setSelectedTaxNameId(ConfigId); }; const handleTaxModalClose = () => { close(false); setSelectedTaxNameId(null); ref.current?.resetFields(); } const handleSubmitTax = async () => { try { const subTaxData = await ref?.current?.validateFields(); const effectiveDate = new Date(subTaxData.EffectiveFrom); const formattedDate = effectiveDate.toLocaleDateString('en-CA'); const addTaxData = { CompId: CompId, AppId: AppId, TaxName: subTaxData?.TaxName, TaxPercentage: subTaxData?.TaxPercentage, EffectiveFrom: formattedDate, Reference: subTaxData.Reference, CreatedBy: UserId, }; const response = await dispatch(postTax(addTaxData)).unwrap(); if (response?.data?.statusCode == 1) { setMessageType('success'); setMessageData(response?.data?.response); close(false); if (flag) { await dispatch(getTax({ CompId: CompId, AppId: AppId })); } else { await dispatch(getAdmin({ CompId: CompId, AppId: AppId })); } ref?.current?.resetFields(); setSelectedTaxNameId(null); } else { setMessageType('error'); setMessageData(response?.data?.response); } } catch (error) { console.log('Error:', error?.message); } }; const onComplete = useCallback(() => { setMessageType(null); setMessageData(null); }, []); return ( <>
({ value: option.ConfigId, label: option.ConfigName, }))} label="Tax Name" className="field-DropDown" onChangeFunction={handleTaxNameDropDownChange} valueData={selectedTaxNameId} /> { await validateSafeInput(value); // To block HTML tags & SQL keywords return Promise.resolve(); }, }, ]} > { let cleanedValue = e.target.value.replace( /[^0-9.]/g, '' ); // Remove invalid characters const parts = cleanedValue.split('.'); if (cleanedValue.startsWith('.')) { cleanedValue = '0' + cleanedValue; } e.target.value = parts.length > 2 ? `${parts[0]}.${parts.slice(1).join('')}` : cleanedValue; }} /> { await validateSafeInput(value); // To block HTML tags & SQL keywords return Promise.resolve(); }, }, ]} >
} handleSubmit={handleSubmitTax} handleCancel={handleTaxModalClose} /> ) }); export default AddTaxModal;