From 938cef1f6b5ec8a2dea87f395bb6589261ade834 Mon Sep 17 00:00:00 2001 From: Dave Date: Tue, 26 May 2026 11:49:08 -0400 Subject: [PATCH] release/2026-06-05 - Esignture Banner --- .../print-center-jobs.component.jsx | 26 ++++++++++++++++++- .../print-center-modal.styles.scss | 4 +++ client/src/translations/en_us/common.json | 3 +++ client/src/translations/es/common.json | 3 +++ client/src/translations/fr/common.json | 3 +++ 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/client/src/components/print-center-jobs/print-center-jobs.component.jsx b/client/src/components/print-center-jobs/print-center-jobs.component.jsx index fd0afe0ce..ae94700a8 100644 --- a/client/src/components/print-center-jobs/print-center-jobs.component.jsx +++ b/client/src/components/print-center-jobs/print-center-jobs.component.jsx @@ -1,5 +1,6 @@ import { useTreatmentsWithConfig } from "../../feature-flags/splitio-react-replacement"; -import { Card, Col, Input, Row, Space, Typography, Tooltip } from "antd"; +import { CloseOutlined } from "@ant-design/icons"; +import { Alert, Button, Card, Col, Input, Row, Space, Typography, Tooltip } from "antd"; import _ from "lodash"; import { useState } from "react"; import { useTranslation } from "react-i18next"; @@ -17,6 +18,7 @@ import PrintCenterSpeedPrint from "../print-center-speed-print/print-center-spee import { bodyshopHasDmsKey, DMS_MAP, getDmsMode } from "../../utils/dmsUtils"; import { selectTechnician } from "../../redux/tech/tech.selectors"; import { hasDocumensoApiKey } from "../../utils/esignature.js"; +import useLocalStorage from "../../utils/useLocalStorage"; const mapStateToProps = createStructuredSelector({ printCenterModal: selectPrintCenter, @@ -28,6 +30,10 @@ const mapDispatchToProps = () => ({}); export function PrintCenterJobsComponent({ printCenterModal, bodyshop, technician }) { const [search, setSearch] = useState(""); + const [esignatureBannerDismissed, setEsignatureBannerDismissed] = useLocalStorage( + "print_center_esignature_banner_dismissed", + false + ); const { id: jobId, job } = printCenterModal.context; const tempList = TemplateList("job", {}); const { t } = useTranslation(); @@ -42,6 +48,7 @@ export function PrintCenterJobsComponent({ printCenterModal, bodyshop, technicia const dmsMode = getDmsMode(bodyshop, "off"); const isReynoldsMode = dmsMode === DMS_MAP.reynolds; const esignatureEnabled = hasDocumensoApiKey(bodyshop); + const showEsignatureBanner = !esignatureEnabled && !esignatureBannerDismissed; const Templates = !hasDMSKey ? Object.keys(tempList) @@ -92,6 +99,23 @@ export function PrintCenterJobsComponent({ printCenterModal, bodyshop, technicia return (
+ {showEsignatureBanner && ( + } + onClick={() => setEsignatureBannerDismissed(true)} + size="small" + type="text" + /> + } + banner + title={t("printcenter.banners.esignature_promo")} + type="info" + className="print-center-esignature-banner" + /> + )} diff --git a/client/src/components/print-center-modal/print-center-modal.styles.scss b/client/src/components/print-center-modal/print-center-modal.styles.scss index 73ff334d9..7451d6b7a 100644 --- a/client/src/components/print-center-modal/print-center-modal.styles.scss +++ b/client/src/components/print-center-modal/print-center-modal.styles.scss @@ -5,3 +5,7 @@ padding: 0; } } + +.print-center-esignature-banner { + margin-bottom: 16px; +} diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 73e04d198..f49fc0d77 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -3053,6 +3053,9 @@ "appointments": { "appointment_confirmation": "Appointment Confirmation" }, + "banners": { + "esignature_promo": "Tired of getting paper signatures? Try E-Signatures today. Contact sales to add this feature." + }, "bills": { "inhouse_invoice": "In House Invoice" }, diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 40685612f..71e7e7dc6 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -3053,6 +3053,9 @@ "appointments": { "appointment_confirmation": "" }, + "banners": { + "esignature_promo": "¿Cansado de obtener firmas en papel? Prueba las firmas electrónicas hoy. Contacta a ventas para agregar esta función." + }, "bills": { "inhouse_invoice": "" }, diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index ce5d80016..eec55cea4 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -3053,6 +3053,9 @@ "appointments": { "appointment_confirmation": "" }, + "banners": { + "esignature_promo": "Vous en avez assez des signatures papier? Essayez les signatures électroniques dès aujourd'hui. Communiquez avec les ventes pour ajouter cette fonction." + }, "bills": { "inhouse_invoice": "" },