41 lines
1.0 KiB
JavaScript
41 lines
1.0 KiB
JavaScript
import { MailFilled, PrinterFilled } from "@ant-design/icons";
|
|
import { Space, Spin } from "antd";
|
|
import React, { useState } from "react";
|
|
import { GenerateDocument } from "../../utils/RenderTemplate";
|
|
|
|
export default function PrintWrapperComponent({
|
|
templateObject,
|
|
messageObject = {},
|
|
children,
|
|
id,
|
|
emailOnly = false,
|
|
disabled,
|
|
}) {
|
|
const [loading, setLoading] = useState(false);
|
|
const handlePrint = async (type) => {
|
|
if (disabled) return;
|
|
setLoading(true);
|
|
await GenerateDocument(templateObject, messageObject, type, id);
|
|
setLoading(false);
|
|
};
|
|
|
|
return (
|
|
<Space>
|
|
{children || null}
|
|
{!emailOnly && (
|
|
<PrinterFilled
|
|
disabled={disabled}
|
|
onClick={() => handlePrint("p")}
|
|
style={{ cursor: disabled ? "not-allowed" : null }}
|
|
/>
|
|
)}
|
|
<MailFilled
|
|
disabled={disabled}
|
|
onClick={() => handlePrint("e")}
|
|
style={{ cursor: disabled ? "not-allowed" : null }}
|
|
/>
|
|
{loading && <Spin />}
|
|
</Space>
|
|
);
|
|
}
|