From 6dfe582fe876162548e501b194d07280f51ea236 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Wed, 24 Jun 2020 14:50:14 +0200 Subject: [PATCH] Display invoice actions notifications --- .../OrderDetails/OrderDetailsMessages.tsx | 32 +++++++++++++++++++ src/orders/views/OrderDetails/index.tsx | 4 +-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/orders/views/OrderDetails/OrderDetailsMessages.tsx b/src/orders/views/OrderDetails/OrderDetailsMessages.tsx index 475f3d27e..8c8c09a38 100644 --- a/src/orders/views/OrderDetails/OrderDetailsMessages.tsx +++ b/src/orders/views/OrderDetails/OrderDetailsMessages.tsx @@ -4,6 +4,8 @@ import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandl import React from "react"; import { useIntl } from "react-intl"; +import { InvoiceEmailSend } from "../../types/InvoiceEmailSend"; +import { InvoiceRequest } from "../../types/InvoiceRequest"; import { OrderAddNote } from "../../types/OrderAddNote"; import { OrderCancel } from "../../types/OrderCancel"; import { OrderCapture } from "../../types/OrderCapture"; @@ -42,6 +44,8 @@ interface OrderDetailsMessages { handlePaymentRefund: (data: OrderRefund) => void; handleShippingMethodUpdate: (data: OrderShippingMethodUpdate) => void; handleUpdate: (data: OrderUpdate) => void; + handleInvoiceGeneratePending: (data: InvoiceRequest) => void; + handleInvoiceSend: (data: InvoiceEmailSend) => void; }) => React.ReactElement; id: string; params: OrderUrlQueryParams; @@ -251,11 +255,39 @@ export const OrderDetailsMessages: React.FC = ({ closeModal(); } }; + const handleInvoiceGeneratePending = (data: InvoiceRequest) => { + const errs = data.requestInvoice?.errors; + if (errs.length === 0) { + pushMessage({ + text: intl.formatMessage({ + defaultMessage: + "We’re generating the invoice you requested. Please wait a couple of moments" + }), + title: intl.formatMessage({ + defaultMessage: "Invoice is Generating" + }) + }); + closeModal(); + } + }; + const handleInvoiceSend = (data: InvoiceEmailSend) => { + const errs = data.sendInvoiceEmail?.errors; + if (errs.length === 0) { + pushMessage({ + text: intl.formatMessage({ + defaultMessage: "Invoice email sent" + }) + }); + closeModal(); + } + }; return children({ handleDraftCancel, handleDraftFinalize, handleDraftUpdate, + handleInvoiceGeneratePending, + handleInvoiceSend, handleNoteAdd, handleOrderCancel, handleOrderFulfillmentCancel, diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index 0f5e6d3ac..820eea9c1 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -148,8 +148,8 @@ export const OrderDetails: React.FC = ({ id, params }) => { onDraftFinalize={orderMessages.handleDraftFinalize} onDraftCancel={orderMessages.handleDraftCancel} onOrderMarkAsPaid={orderMessages.handleOrderMarkAsPaid} - onInvoiceRequest={() => null} - onInvoiceSend={() => null} + onInvoiceRequest={orderMessages.handleInvoiceGeneratePending} + onInvoiceSend={orderMessages.handleInvoiceSend} > {({ orderAddNote,