import { useQuery } from "@apollo/client"; import React from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { GET_DOCUMENTS_BY_JOB } from "../../graphql/documents.queries"; import { selectEmailConfig } from "../../redux/email/email.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; import AlertComponent from "../alert/alert.component"; import JobDocumentsGalleryExternal from "../jobs-documents-gallery/jobs-documents-gallery.external.component"; import JobsDocumentsLocalGalleryExternalComponent from "../jobs-documents-local-gallery/jobs-documents-local-gallery.external.component"; import LoadingSpinner from "../loading-spinner/loading-spinner.component"; const mapStateToProps = createStructuredSelector({ //currentUser: selectCurrentUser bodyshop: selectBodyshop, emailConfig: selectEmailConfig, }); const mapDispatchToProps = (dispatch) => ({ //setUserLanguage: language => dispatch(setUserLanguage(language)) }); export default connect( mapStateToProps, mapDispatchToProps )(EmailDocumentsComponent); export function EmailDocumentsComponent({ emailConfig, form, selectedMediaState, bodyshop, }) { const { t } = useTranslation(); const [selectedMedia, setSelectedMedia] = selectedMediaState; const { loading, error, data } = useQuery(GET_DOCUMENTS_BY_JOB, { variables: { jobId: emailConfig.jobid, }, skip: !emailConfig.jobid, fetchPolicy: "network-only", nextFetchPolicy: "network-only", }); return (
{loading && } {error && } {selectedMedia.filter((s) => s.isSelected).length >= 10 ? (
{t("messaging.labels.maxtenimages")}
) : null} {selectedMedia && selectedMedia .filter((s) => s.isSelected) .reduce((acc, val) => (acc = acc + val.size), 0) >= 10485760 - new Blob([form.getFieldValue("html")]).size ? (
{t("general.errors.sizelimit")}
) : null} {!bodyshop.uselocalmediaserver && data && ( )} {bodyshop.uselocalmediaserver && ( )}
); }