saleor-dashboard/src/orders/components/OrderDraftCancelDialog/OrderDraftCancelDialog.tsx

66 lines
1.9 KiB
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
import DialogContentText from "@material-ui/core/DialogContentText";
import ActionDialog from "@saleor/components/ActionDialog";
import { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton";
2020-03-16 12:28:52 +00:00
import FormSpacer from "@saleor/components/FormSpacer";
import useModalDialogErrors from "@saleor/hooks/useModalDialogErrors";
import { OrderErrorFragment } from "@saleor/orders/types/OrderErrorFragment";
2020-03-16 12:28:52 +00:00
import getOrderErrorMessage from "@saleor/utils/errors/order";
import React from "react";
import { FormattedMessage, useIntl } from "react-intl";
2019-06-19 14:40:52 +00:00
export interface OrderDraftCancelDialogProps {
confirmButtonState: ConfirmButtonTransitionState;
2020-03-16 12:28:52 +00:00
errors: OrderErrorFragment[];
2019-06-19 14:40:52 +00:00
open: boolean;
onClose: () => void;
onConfirm: () => void;
orderNumber: string;
}
const OrderDraftCancelDialog: React.FC<OrderDraftCancelDialogProps> = ({
confirmButtonState,
2020-03-16 12:28:52 +00:00
errors: apiErrors,
onClose,
onConfirm,
open,
orderNumber
}) => {
const intl = useIntl();
2020-03-16 12:28:52 +00:00
const errors = useModalDialogErrors(apiErrors, open);
return (
<ActionDialog
confirmButtonState={confirmButtonState}
onClose={onClose}
onConfirm={onConfirm}
open={open}
title={intl.formatMessage({
2019-10-09 15:33:55 +00:00
defaultMessage: "Delete Daft Order",
description: "dialog header"
})}
variant="delete"
>
<DialogContentText>
<FormattedMessage
2019-11-06 14:02:13 +00:00
defaultMessage="Are you sure you want to delete draft #{orderNumber}?"
values={{
2019-11-06 14:02:13 +00:00
orderNumber: <strong>{orderNumber}</strong>
}}
/>
</DialogContentText>
2020-03-16 12:28:52 +00:00
{errors.length > 0 && (
<>
<FormSpacer />
{errors.map(err => (
<DialogContentText color="error">
{getOrderErrorMessage(err, intl)}
</DialogContentText>
))}
</>
)}
</ActionDialog>
);
};
2019-06-19 14:40:52 +00:00
OrderDraftCancelDialog.displayName = "OrderDraftCancelDialog";
export default OrderDraftCancelDialog;