Merge pull request 'Email-Loader' (#291) from Email-Loader into main

Reviewed-on: Pozomind/pozo-retail-app#291
This commit is contained in:
karthikalakshmi 2026-03-20 11:23:27 +05:30
commit aa2a3b3c79
2 changed files with 55 additions and 42 deletions

View File

@ -1158,10 +1158,10 @@ function BSReprint({ setOpenModel = () => { } }) {
};
const handleSendEmail = async (value) => {
const toEmail = value.email;
setLoading(true);
try {
const toEmail = value.email;
if (selectedRows.length === 0) {
setLoading(true);
const result = await MobilePdfPrint({
printerTemplateStyle,
printDatas,
@ -1172,16 +1172,25 @@ function BSReprint({ setOpenModel = () => { } }) {
});
if (result?.data?.status === 1) {
setEmailModalOpen(false); // Close modal
setEmailId(''); // Reset email input (optional)
setLoading(false);
setMessage({ type: 'success', data: result?.data?.response || 'Email sent successfully' });
setEmailModalOpen(false);
setEmailId('');
form.resetFields();
} else {
setMessage({ type: 'error', data: result?.data?.response || 'Email sending failed' });
}
} else {
mutiplePrint('email',toEmail);
await mutiplePrint('email', toEmail);
}
} catch (err) {
console.error('❌ Email error:', err);
setMessage({ type: 'error', data: err?.message || 'Something went wrong while sending email' });
} finally {
setLoading(false);
if (selectedRows.length === 0) {
// for single row, form already reset on success; for failure, still reset to clear bad input
form.resetFields();
}
}
};
@ -1844,10 +1853,10 @@ function BSReprint({ setOpenModel = () => { } }) {
/>
</Modal> */}
{(emailModalOpen || isProcessing) && (
{(emailModalOpen || loading) && (
<EmailModel
open={emailModalOpen}
emailSending={isProcessing}
emailSending={loading}
handleCancel={() => setEmailModalOpen(false)}
form={form}
handleSendEmailWithEnteredEmail={handleSendEmail}

View File

@ -90,6 +90,8 @@ const ReprintReasonReportList = () => {
const [message, setMessage] = useState({ type: null, data: null });
const [searchedText, setSearchedText] = useState('');
const [tableData, setTableData] = useState([]);
console.log(tableData, 'tableData23232');
const [fromDate, setFromDate] = useState();
const [toDate, setToDate] = useState();
const [page, setpage] = useState(1);
@ -103,21 +105,21 @@ const ReprintReasonReportList = () => {
index: index + 1
}));
const items = [
{
name: 'Home',
link: `${subDirectory}app-page/home`,
},
{
name: 'Reprint Details',
link: `${subDirectory}report/reprintreasonreport`,
},
];
useEffect(() => {
dispatch(changeBreadCrumb({ items: items }));
}, []);
const items = [
{
name: 'Home',
link: `${subDirectory}app-page/home`,
},
{
name: 'Reprint Details',
link: `${subDirectory}report/reprintreasonreport`,
},
];
useEffect(() => {
dispatch(changeBreadCrumb({ items: items }));
}, []);
const columns = [
{
title: 'Sl.No',
@ -463,11 +465,13 @@ const ReprintReasonReportList = () => {
>
<BiSolidPrinter
onClick={Print}
className={
tableData?.length > 0
? 'ItemWiseReport-printerIcon'
: 'ItemWiseReport-printerIcon-disabled'
}
style={{
fontSize: '24px',
cursor: tableData?.length > 0 ? 'pointer' : 'not-allowed',
opacity: tableData?.length > 0 ? 1 : 0.5,
pointerEvents: tableData?.length > 0 ? 'auto' : 'none'
}}
/>
{/* <div
style={{
@ -501,20 +505,20 @@ const ReprintReasonReportList = () => {
</Form.Item>
</div>
</div> */}
<div style={{paddingTop:'15px'}}>
<Form.Item name="DateRange">
<DatePicker.RangePicker
format={'DD/MM/YYYY'}
value={
fromDate && toDate
? [dayjs(fromDate, 'DD-MM-YYYY HH:mm:ss'), dayjs(toDate, 'DD-MM-YYYY HH:mm:ss')]
: null
}
onChange={onChange_Pending_DateRange}
disabledDate={(current) => current && current > dayjs()}
/>
</Form.Item>
</div>
<div style={{ paddingTop: '15px' }}>
<Form.Item name="DateRange">
<DatePicker.RangePicker
format={'DD/MM/YYYY'}
value={
fromDate && toDate
? [dayjs(fromDate, 'DD-MM-YYYY HH:mm:ss'), dayjs(toDate, 'DD-MM-YYYY HH:mm:ss')]
: null
}
onChange={onChange_Pending_DateRange}
disabledDate={(current) => current && current > dayjs()}
/>
</Form.Item>
</div>
</Form>
</div>