Files
bodyshop/client/src/components/print-center-item/print-center-item.component.jsx

63 lines
1.6 KiB
JavaScript

import { MailOutlined, PrinterOutlined } from "@ant-design/icons";
import React from "react";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { setEmailOptions } from "../../redux/email/email.actions";
import { selectPrintCenter } from "../../redux/modals/modals.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
import RenderTemplate, {
displayTemplateInWindow,
} from "../../utils/RenderTemplate";
const mapStateToProps = createStructuredSelector({
printCenterModal: selectPrintCenter,
bodyshop: selectBodyshop,
});
const mapDispatchToProps = (dispatch) => ({
setEmailOptions: (e) => dispatch(setEmailOptions(e)),
});
export function PrintCenterItemComponent({
printCenterModal,
setEmailOptions,
item,
id,
bodyshop,
disabled,
}) {
const renderToNewWindow = async () => {
await RenderTemplate(
{
name: item.key,
variables: { id: id },
},
bodyshop
);
// displayTemplateInWindow(html);
};
if (disabled) return <li className="print-center-item">{item.title} </li>;
return (
<li className="print-center-item">
{item.title}
<PrinterOutlined onClick={renderToNewWindow} />
<MailOutlined
onClick={() => {
setEmailOptions({
messageOptions: {
Subject: "",
},
template: {
name: item.key,
variables: { id: id },
},
});
}}
/>
</li>
);
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(PrintCenterItemComponent);