Refactor order details props types

This commit is contained in:
Dawid Tarasiuk 2020-07-02 13:58:44 +02:00
parent 724df1939e
commit a1624508eb
4 changed files with 16 additions and 14 deletions

View file

@ -9,7 +9,6 @@ import Grid from "@saleor/components/Grid";
import PageHeader from "@saleor/components/PageHeader"; import PageHeader from "@saleor/components/PageHeader";
import Skeleton from "@saleor/components/Skeleton"; import Skeleton from "@saleor/components/Skeleton";
import { sectionNames } from "@saleor/intl"; import { sectionNames } from "@saleor/intl";
import { InvoiceFragment } from "@saleor/orders/types/InvoiceFragment";
import { UserPermissionProps } from "@saleor/types"; import { UserPermissionProps } from "@saleor/types";
import React from "react"; import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
@ -64,9 +63,9 @@ export interface OrderDetailsPageProps extends UserPermissionProps {
onOrderCancel(); onOrderCancel();
onNoteAdd(data: HistoryFormData); onNoteAdd(data: HistoryFormData);
onProfileView(); onProfileView();
onInvoiceClick(invoice: InvoiceFragment); onInvoiceClick(invoiceId: string);
onInvoiceGenerate(); onInvoiceGenerate();
onInvoiceSend(invoice: InvoiceFragment); onInvoiceSend(invoiceId: string);
} }
const OrderDetailsPage: React.FC<OrderDetailsPageProps> = props => { const OrderDetailsPage: React.FC<OrderDetailsPageProps> = props => {

View file

@ -11,16 +11,15 @@ import FormSpacer from "@saleor/components/FormSpacer";
import { buttonMessages } from "@saleor/intl"; import { buttonMessages } from "@saleor/intl";
import { InvoiceErrorFragment } from "@saleor/orders/types/InvoiceErrorFragment"; import { InvoiceErrorFragment } from "@saleor/orders/types/InvoiceErrorFragment";
import { InvoiceFragment } from "@saleor/orders/types/InvoiceFragment"; import { InvoiceFragment } from "@saleor/orders/types/InvoiceFragment";
import { DialogProps } from "@saleor/types";
import getInvoiceErrorMessage from "@saleor/utils/errors/invoice"; import getInvoiceErrorMessage from "@saleor/utils/errors/invoice";
import React from "react"; import React from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
export interface OrderInvoiceEmailSendDialogProps { export interface OrderInvoiceEmailSendDialogProps extends DialogProps {
confirmButtonState: ConfirmButtonTransitionState; confirmButtonState: ConfirmButtonTransitionState;
errors: InvoiceErrorFragment[]; errors: InvoiceErrorFragment[];
open: boolean;
invoice: InvoiceFragment; invoice: InvoiceFragment;
onClose: () => void;
onSend: () => void; onSend: () => void;
} }

View file

@ -38,8 +38,8 @@ const useStyles = makeStyles(
interface OrderInvoiceListProps { interface OrderInvoiceListProps {
invoices: InvoiceFragment[]; invoices: InvoiceFragment[];
onInvoiceGenerate: () => void; onInvoiceGenerate: () => void;
onInvoiceClick: (invoice: InvoiceFragment) => void; onInvoiceClick: (invoiceId: string) => void;
onInvoiceSend: (invoice: InvoiceFragment) => void; onInvoiceSend: (invoiceId: string) => void;
} }
const OrderInvoiceList: React.FC<OrderInvoiceListProps> = props => { const OrderInvoiceList: React.FC<OrderInvoiceListProps> = props => {
@ -109,7 +109,7 @@ const OrderInvoiceList: React.FC<OrderInvoiceListProps> = props => {
? classes.colNumberClickable ? classes.colNumberClickable
: classes.colNumber : classes.colNumber
} }
onClick={() => onInvoiceClick(invoice)} onClick={() => onInvoiceClick(invoice.id)}
> >
<FormattedMessage <FormattedMessage
defaultMessage="Invoice" defaultMessage="Invoice"
@ -127,7 +127,7 @@ const OrderInvoiceList: React.FC<OrderInvoiceListProps> = props => {
{onInvoiceSend && ( {onInvoiceSend && (
<TableCell <TableCell
className={classes.colAction} className={classes.colAction}
onClick={() => onInvoiceSend(invoice)} onClick={() => onInvoiceSend(invoice.id)}
> >
<Button color="primary"> <Button color="primary">
<FormattedMessage {...buttonMessages.send} /> <FormattedMessage {...buttonMessages.send} />

View file

@ -256,16 +256,20 @@ export const OrderDetails: React.FC<OrderDetailsProps> = ({ id, params }) => {
onProfileView={() => onProfileView={() =>
navigate(customerUrl(order.user.id)) navigate(customerUrl(order.user.id))
} }
onInvoiceClick={invoice => onInvoiceClick={id =>
window.open(invoice.url, "_blank") window.open(
order.invoices.find(invoice => invoice.id === id)
?.url,
"_blank"
)
} }
onInvoiceGenerate={() => onInvoiceGenerate={() =>
orderInvoiceRequest.mutate({ orderInvoiceRequest.mutate({
orderId: id orderId: id
}) })
} }
onInvoiceSend={invoice => onInvoiceSend={id =>
openModal("invoice-send", { id: invoice.id }) openModal("invoice-send", { id })
} }
/> />
<OrderCannotCancelOrderDialog <OrderCannotCancelOrderDialog